怎么判断是大端模式还是小端模式(如何判断计算机是大端模式还是小端模式)
怎么判断是大端模式还是小端模式(如何判断计算机是大端模式还是小端模式)计算机为什么会有大小端之分呢?首先就是由于不同架构的CPU处理多个字节数据的顺序不一样,后来互联网流行,TCP/IP协议规定为大端模式。其次就是大端模式和小端模式各有优点,小端模式强制转换类型时不需要调整字节内容,直接截取低字节即可;大端模式由于符号位为第一个字节,方便判断正负。
介绍大端模式(Big-endian):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端;
小端模式(Little-endian):低位字节排放在内存的低地址端,高位字节排放在内存的高地址端,即逆序排列,低尾端;
大端模式和小端模式
图中我们可以看出无论是小端模式还是大端模式,每个字节内部都是按顺序排列的。
出现原因计算机为什么会有大小端之分呢?
首先就是由于不同架构的CPU处理多个字节数据的顺序不一样,后来互联网流行,TCP/IP协议规定为大端模式。
其次就是大端模式和小端模式各有优点,小端模式强制转换类型时不需要调整字节内容,直接截取低字节即可;大端模式由于符号位为第一个字节,方便判断正负。
代码#include <stdio.h>
#include <string.h>
int main(void)
{
short i= 0x1234;
char *p=(char*)&i;
if(0x12 == *p)
{
printf(“大端模式");
}
else
{
printf(“小端模式");
}
return e;
}