printf("%04X", value); //__be16 value; //Print a hex value of at least 4 characters, no padding.
2
2
したがって、タイプ__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」とは、値がビッグエンディアンであることを意味し、バイトを交換する必要があることを推測します。