1、
内存是以bit为单位,每bit可以存放8个二进制数,如8的二进制数为00001000。
2、
不同的数据占用的bit不同,如int型数据为4bit,char型为2bit,那么这些数据各bit在内存中的存放顺序是什么?
2.1这里涉及大端存储小端存储
大端存储:数据高位存放在低地址,数据低位存放在高地址
小端存储:数据高位存放在高地址,数据低位存放在低地址
这里涉及不同系统的问题,x86是小端存储,mac是大端存储
比如一个int数据a=0x00020301=131841
高地址 ... 低地址
如果是小端存放,那么内存中数据顺序为:
00000000 00000010 00000011 00000001
如果是大端存放,那么内存中数据顺序为:
高地址 ... 低地址
00000001 00000011 00000010 00000000
2.2大端小端判断
我们可以用以下方法判断一个系统是小端还是大端
#include <stdio.h>
void main()
{
int i = 1;
int ret = i >> 1;
if (ret== 0)
printf("小端");
else
printf("大端");
}
int i=1
小端存储:
00000000 00000000 00000000 00000001
右移后变为0;
大端存储:
00000001 00000000 00000000 00000000
右移后变为:
00000000 10000000 00000000 00000000