计算机系统——大小端(bit-endia&little-endian)

端模式

  端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian大端,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)。

大端

  低地址存储高字节(起决定性作用的数,例如:1234中的1代表一千起决定性作业),高地址存储低字节。优点:直观。

小端

  低地址存储低字节,高地址存储高字节。优点:符合逻辑,利于计算机计算。

大小端的判断

  定义一个整型i=1;其在内存中的存储如下
00000000 00000000 00000000 00000001
高字节             低字节

  如果是小端模式,那么 00000001将会放在低地址,如果是大端模式 00000001将会放在高地址。char指针一个字节大小,如果是小端模式(char)&i指向的将是 00000001,对(char*)&i解引用将得到1。

#include<stdio.h>
#include<stdlib.h>
int main()
{
	int i = 1;
	int jet = *(char*)&i;
	if (jet == 1)
		printf("小端");
	else
		printf("大端");
	system("pause");
	return 0;
}

监视内存i如下
在这里插入图片描述
为了更好的理解,i是如何在内存中存储的,我们把i的值改为300。
在这里插入图片描述
在这里插入图片描述
300对应的二进制为
00000000 00000000 00000001 00101100
高字节             低字节
内存中的数据是以十六进制存储的 01 对应 二进制中的00000001 ,2c对应二进制中的 00101100,这样就可以很直观的观察小端模式是如何存储整型的了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值