aboutsummaryrefslogtreecommitdiffstats
path: root/sdk/other/hex.c
blob: ae5ccec06bf4019a6c741059f16dc257bbc1b9e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
 * Hex digit conversion functions.
 * $Id$
 * Copyright (c) 1997 by Tycho Softworks.
 * For conditions of distribution and reuse see product license.
 */

#include <other/strcvt.h>

char	hex(int digit)
{
        if(digit < 10)
                return '0' + digit;
        else
                return '7' + digit;
};

char *hexbyte(uchar v)
{
        static  char    h[3];

        h[0] = hex(v / 16);
        h[1] = hex(v % 16);
        h[2] = 0;
        return h;
};

char *hexshort(ushort v)
{
        static  char    h[5];

        strcpy(h, hexbyte((uchar)(v / 256)));
        strcpy(h + 2, hexbyte((uchar)(v % 256)));
        return h;
};

char *hexlong(ulong v)
{
        static  char    h[9];

        strcpy(h, hexshort((ushort)(v / 65536)));
        strcpy(h + 4, hexshort((ushort)(v % 65536)));
        return h;
};