-1
我想将字符转换为十六进制例如我在字符'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”。
我想将字符转换为十六进制例如我在字符'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”。
价值040
是八进制,但你的代码可以与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_array [i] <= 0x0F)? – MayurK
'040'是八.. 。也许你忘了一点点'x':'0x40' – LPs
哈哈是的,它是0x40。我的不好 –