2013-08-05 61 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