リトルエンディアン[LE]マシン[Linux、Intelプロセッサ]で次のプログラムを実行しました。以下のコードスニペットで3つの出力を説明することはできません。machineはLEであるため、の値はa
として格納され0x78563412
ます。印刷時には、実際の値を表示しています。LEマシンなのでntohl()
、ノーオペレーションとディスプレイを期待し0x78563412
ています。ただし、を0x12345678
含む2番目のprintステートメントを期待していhtonl()
ます。誰かが私が彼らが同じである理由を理解するのを手伝ってもらえますか?
int main()
{
int a = 0x12345678;
printf("Original - 0x%x\n", (a));
printf("Network - 0x%x\n", htonl(a));
printf("Host - 0x%x\n", ntohl(a));
return 0;
}
出力:
Original - 0x12345678
Network - 0x78563412
Host - 0x78563412