在64位变量中存储300 * 1024 * 1024作为低位和高位

时间:2013-08-05 14:39:35

标签: c 64-bit endianness

我试图理解300 * 1024 * 1024值将如何存储在大端机器上的64位变量中,我们将如何评估高字节和低字节?

2 个答案:

答案 0 :(得分:2)

使用长整数和8个无符号字符数组构建一个联合,并亲自查看。如果需要,可以以十六进制查看未签名的字符。

答案 1 :(得分:0)

Big-endian硬件将最重要的字节存储在内存中。 Little-endian硬件首先存储最低有效字节。在十六进制300 * 1024 * 1024是0x12C00000。

因此,对于您的大端硬件,它将像这样存储:

byte number  1  2  3  4  5  6  7  8
value        00 00 00 00 12 C0 00 00

在LE硬件上,字节将以相反的顺序存储:

byte number  1  2  3  4  5  6  7  8
value        00 00 C0 12 00 00 00 00