大端法和小端法a地方

在C语言中,不同的数据类型占用的空间是不同的。例如char型的占用1个字节,而int型占用4个字节等。

对于多个字节的存储数据而言,数据的存储顺序的问题就显示出来了

所以大端法和小端法是 对  多字节   而言的。

不管是大端法还是小端发,数据在内存中的存储顺序都是由低地址到高地址,就是读取得顺序不同。

现在有一个整形数据0x12345678,左边的是高字节,右边的是低字节,

如  x (int)  位于 0x100  (指  首地址 的编号  )处,其值 0x01234567  所在 地址空间为 0x100~0x103 的字节
 大端法    0x100      0x101     0x102    0x103      (高位 在  首地址处,即编号较少的地址空间)     (IBM,SUN 大型机   大部分)
                   01           23           45        67
小端法        67           45            23        01         (低位 在 首地址处,即编号较少的地址空间)       (intel 等pc机   大部分)


首地址指的是编号较小的地址


测试代码

#include<stdio.h>

int main(int argc,char **argv)

{

int a=0x12345678;

char *p=NULL;

p=(char *) ( &a );

if(*p==0x78)

printf(" The little endlian\n");

else

printf(" The Big endlian\n");

return 0;

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章