什么是大端和小端
计算机系统在存储多字节数据时,可以采用两种不同的方式:大端和小端。在大端系统中,多字节数据的最高有效位字节存储在内存的最低地址,而小端系统则相反。例如,数字 1234 在大端系统中存储为 12 34,而在小端系统中存储为 34 12。
查看 Linux 是大端还是小端的
有几种 可以查看 Linux 系统是大端还是小端:
**1. 使用 字节序魔数 **
字节序魔数是一个常量,其值在大端和小端系统中不同。在 Linux 中,可以使用 int32_t 数据类型的字节序魔数 0x01020304 来检查系统端序:
include
int main() {
int32_t x = 0x01020304;
if (*((char *)&x) == 0x01) {
printf("小端系统\n");
} else if (*((char *)&x) == 0x04) {
printf("大端系统\n");
}
return 0;
}
**2. 使用 uname 命令**
uname 命令可以提供有关 Linux 系统的信息,其中包括系统端序:
$ uname -m
x86_64
$ uname -p
little
在这种情况下, uname -p 输出为 little ,表示系统是小端。
**3. 使用 /proc/cpuinfo 文件**
/proc/cpuinfo 文件包含有关 CPU 的信息,其中也包括系统端序:
$ cat /proc/cpuinfo | grep 字节序
字节序: 小端
在这个例子中,输出显示系统是小端的。