在讲解大小端之前我们必须先清楚:原码、反码及补码的概念。在上一篇 中具体讲解了概念,此处我们就不详解。在计算机系统中,数值一律用补码来表示和存储。
那为什么是以补码的形式存在呢?
我们都知道 CPU 只有加法器,那如果我们计算 1-1 应该怎么算呢? 计算机就会转换为 1+(-1)
下面我们以代码为例:
我们用一个更加明显的数字来查看:
我们封装一个函数用来验证机器的大小端
#include <stdio.h>
int check_sys(void)
{
int a=1;
char* p=(char*)&a;
return *p;
}
int main()
{
int ret=check_sys();
if(ret==1)
printf("小端\n");
else
printf("大端\n");
return 0;
}
这里为什么定义为 char* ,前面 讲过了,此处就不详解了。通过我们封装的这个代码,就可以判断机器是大端还是小端了。
因篇幅问题不能全部显示,请点此查看更多更全内容