2


2

Printfおよび16進値

したがって、タイプ__be16(2バイト)の値があります。 16進数では、値は0x0800または10進数の2048として表されます。 (16 ^ 2 * 8)

したがって、これをprintfすると、私はこれをします:

printf("%04X", value); //__be16 value;
                      //Print a hex value of at least 4 characters, no padding.

出力:0008

printf("%i", value); //Print an integer.

出力:8

それぞれ0800と2048を取得するはずですが、何が間違っていますか?

1 Answer


8


私の推測では、「値」は8です。 :-)

x86などのリトルエンディアンマシンを使用していますか? 「be16」とは、値がビッグエンディアンであることを意味し、バイトを交換する必要があることを推測します。