-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。我的不好 –