2013-08-05 40 views
1

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

+1

取决于“字节序”你的机器架构。 – Bathsheba

+0

实际存储可能取决于底层的CPU架构... –

+0

这取决于您使用的硬件将如何存储在内存中。但是'C'提供了一个抽象,如果你想查看高字节和低字节,只需要使用十六进制或二进制常量,那么你会很好。移位,二进制AND和其余的都可以正常工作。 – Hogan

回答

2

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

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