字符到十六进制?

时间:2016-11-22 07:40:46

标签: c char hex

我正在尝试将Char转换为十六进制,例如我在char中使用'f'我想要将其转换为0xf,或者如果我有'9'应该转换为0x9。 目前我正在这样做

if(char_array[i]>=0x0A)
   Hex_array[i] =( char_array[i] - 0x09) | 040;
else
   Hex_array[i] = (char_array[i] | 0x30);

但它仅适用于低于'9'的值。

1 个答案:

答案 0 :(得分:0)

0x40是八进制,但您的代码可以使用 if(char_array[i]>=0x0A) Hex_array[i] =( char_array[i] - 0x09) | 0x40; else Hex_array[i] = (char_array[i] | 0x30); (十六进制)

    if ((char_array[i]>0x09) && (char_array[i]<0x10))
       Hex_array[i] =( char_array[i] - 0x0A) + 'A';
    else if ((char_array[i]>=0x00) && (char_array[i]<0x0A))
       Hex_array[i] = (char_array[i] + '0');

为了提高代码的可读性,可以使用char literal

std::function