概述
概念
big-endian格式:高字节字符数据被存储在低地址。字数据的低字节存放在高地址。
小尾数格式:相较于大端存储格式,在小尾数格式。低地址存储在字数据的低字节。的是字数据的高字节。
如5A6C
中5A
是高字节、6C
是低字节。在大端序机器中,高字节位于低地址中。即在大端序中依照5A6C
存储,在小端序中依照6C5A
存储。
为什么存在这样的模式
由于在计算机系统中。我们是以字节为单位的。每一个地址单元都相应着一个字节。一个字节为8bit
。
可是在C
语言中除了8bit
的char
之外,还有16bit
的short
型,32bit
的long
型(要看详细的编译器)。另外。对于位数大于8
位的处理器。比如16
位或者32
位的处理器。由于寄存器宽度大于一个字节,那么必定存在着一个假设将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。
代码实现
请写一个C
函数,若处理器是Big_endian
的,则返回0
。若是Little_endian
的。则返回1
int checkCPU()
{
union w
{
int
a;
char b;
} c;
c.a = 1;
return(c.b == 1);
}
分析:
联合体union
的存放顺序是全部成员都从低地址開始存放。
short int x;
char x0,x1;
x=0x1122;
x0=((char*)&x)[0];
//低地址单元
x1=((char*)&x)[1];
//高地址单元
若x0=0x11,则是大端; 若x0=0x22,则是小端......
版权声明:本文博主原创文章,博客,未经同意不得转载。
最后
以上就是高兴麦片为你收集整理的推断序列的端部的大小C规划的全部内容,希望文章能够帮你解决推断序列的端部的大小C规划所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复