如何从ASCII转换为Hex,反之亦然?

kir*_*ran 1 c

我需要转换ASCIIHEXHEXASCII通过使用一个C程序.
我怎样才能做到这一点?

Edd*_*van 7

这是将一个字符转换为十六进制字符串的简单函数.

char hexDigit(unsigned n)
{
    if (n < 10) {
        return n + '0';
    } else {
        return (n - 10) + 'A';
    }
}

void charToHex(char c, char hex[3])
{
    hex[0] = hexDigit(c / 0x10);
    hex[1] = hexDigit(c % 0x10);
    hex[2] = '\0';
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,C 标准不保证字母的值是连续的。(它确实对数字做出了保证。)更简单:`“0123456789ABCDEF”[n]`。 (2认同)