目录
引言:
我们知道,一个整数的二进制表示方法有三种,即:原码、反码、补码。
需要注意的是:这三种表示方法由符号位和数值位两部分组成,符号位为0表示‘正数’
符号位为1表示‘负数’,最高位会被当成符号位来理解,剩下的会被当做数值为来理解。
这里需要注意:
正整数的原码,反码,补码,都相同。
负整数的三种表示方法各不相同。
原码:直接将数值按正负数的形式转换成二进制就是原码。
反码:在原码符号位不变的基础上,其他位按位取反就可以得到反码。
补码:反码+1就能得到补码。
对于整型来说:数据存放在内存中其实存放的就是补码。
大小端字节序:
在学习什么是大小端之前,我先举个例子看一下:
#include<stdio.h>
int main()
{
int a = 0x0012FF40;
return 0;
}
可以看到,我们存在bianla中的0x0012FF40,它存到内存中是倒着存的,那么是为什么呢?
这里就涉及我们的大小端存储了。
什么是大(小)端存储?
当我们存储的数据超过一个字节的时候,就会出现存储顺序的问题,并且按照不同的存储顺序就会分为大端存储和小端存储。
大端存储:是将低位字节内容保存在内存的高地址处,将高位字节内容保存在低地址处。
小端存储:是将低位字节内容保存在内存的低地址处,将高位字节内容保存在高地址处。
举例:
这就是大端存储和小端存储的区别。
以上就是什么是大端存储,什么是小端存储,希望大家多多支持,喜欢的话可以点赞+关注。感谢观看。