2017-02-06 16 views
0

整数を16進数に直接変換することはできますか?ヘキサ10進文字列形式

Integer Value = 145635 

hexa decimal value (4 bytes) = 0x000238E3 

<0x00><0x02><0x38><0xE3> 

私は%xで試しました。しかし、それは私のためには機能しません。
誰でもこの問題について私を助けることができますか?

+4

[MCVE(http://stackoverflow.com/help/mcve)、期待と実際の出力を入力してくださいこれはあなたの問題を示しています。また、正確には「16進数に変換する」という意味ですか? 'int'を整数を16進数で保持する文字列に変換しますか? – yeputons

+4

"しかし、それは私を助けません。*"なぜ? – alk

答えて

2

各バイトを囲む<..>の出力は、少なくとも次のように1つのprintf文で出力することができます。ヘクスとビットシフト演算子と一緒に優れている、そのデータ・タイプが符号なしであることに注意してください:

unsigned int val = 145635; 
// "ordinary" printf 
printf("%08X\n", val);  

// printf per byte: 
printf("<%02X><%02X><%02X><%02X>\n", 
     val >> 24, 
     (val&0x00ff0000) >> 16, 
     (val&0x0000ff00) >> 8, 
     val&0x000000ff); 
+0

'%02x' ---->'%02X'は望ましい出力を達成するために – LPs

+0

@LPs:ありがとう、ありがとう。 –

+0

プラス1つですが、OPが実際に望んでいるものかどうかはわかりません。 –