编写C程序判断大小端模式
大小端
- 先来说说**大小端模式**。
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;这和我们的阅读习惯一致。
小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低。
存储实例
- 存储实例
比如我们现在需要一片内存存放一个short类型16进制数字。也就是说这个数字在32位计算机占2个字节。一个字节又是8位。假如说我们需要把0x0001这个16进制数字用大端方式存储。
如图所示,我们把高位的00存放在低内存处,地位的01存放在高内存处。
假如说我们现在用小端存储的话,它就又成了下面图片这样
如此就是大小端的区别了。
char类型取int中的最低内存处
- 我们现在又一个int整型的数字 int a=666; 那么这个数字到底在内存中是怎么存放的呢。因为网络一般用的大端字节序,而我们个人pc一般用的是小端字节序。所以我们以小端字节序为例演示。一个int4个字节,而一个字节有8位,2的8次方为256,也就是说一个字节最大存储的数字是256,那么我们村321时就要按如下的方式去存放。
如图所示,那么大端就刚好反过来。
#