怎么確認(rèn)一臺(tái)電腦是big-endian 還是little-endian?
來(lái)源:程序員人生 發(fā)布時(shí)間:2015-01-07 08:26:04 閱讀次數(shù):2841次
假定我們使用的是1臺(tái)32位機(jī)器。
如果是little endian, 那末x在內(nèi)存中是之樣排列的
高內(nèi)存
---->
+----+----+----+----+
|0x01|0x00|0x00|0x00|
+----+----+----+----+
A
|
&x
所以 (char*)(*x) == 1
如果是big endian,它將會(huì)是這個(gè)模樣
高內(nèi)存
---->
+----+----+----+----+
|0x00|0x00|0x00|0x01|
+----+----+----+----+
A
|
&x
所以 (char*)(*x) == 0
#include <stdio.h>
#include <stdint.h>
int is_big_endian(void)
{
union {
uint32_t i;
char c[4];
} e = {0x10000000};
return e.c[0];
}
int main(void)
{
printf("System is %s -endian.
", is_big_endian() ? "big" : "little");
return 0;
}
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)