2016-11-22 180 views
-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」。

+2

'040'是八.. 。也許你忘了一點點'x':'0x40' – LPs

+0

哈哈是的,它是0x40。我的不好 –

回答

0

價值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'); 
+1

不應該是(char_array [i] <= 0x0F)? – MayurK