目录
1.整型家族
比如身高,只能为正数,以此要用无符号数(unsigned)
比如温度,有正有负,因此要用有符号数(signed)
short,int,long都表示有符号数
即short = signed short,int = signed int,long=signed long
但char在不同编译器之下表示不同,有可能为unsigned char,也有可能为signed char
2.在内存中的存储
整数的二进制表示:原码,反码,补码
正数: 原码,反码,补码都相同
负数: 原码 除符号位,按位取反——>反码 加一——>补码
例如
整形在内存中都是以补码的形式存储
原因:
1.符号位和数值位可以来进行计算
2.可以将加减统一处理,如 1 - 1化为 1 +(-1)
3.大小端字节序存储
存储的单位: 字节
一个16进制的数值位=4个二进制位
那么两个16进制的数值位 = 一个byte
大端字节序存储:
把数据的低位的内容存储在内存的高地址处,把数据的高位的内容存储在内存的低地址处(从高地址开始存)
小端字节存储:
把数据的低位的内容存储在内存的低地址处,把数据的高位的内容存储在内存的高地址处(从低地址开始存)
不是87 65 43 21的原因:
存储是以字节为单位,而2个16进制位=一个byte,那么78 56 34 12分别为一个比特位,那么排序只是在字节之间排序,在本身的顺序不变。