C语言———数据存储1——整形存储

发布于:2022-12-28 ⋅ 阅读:(279) ⋅ 点赞:(0)

目录

1.整型家族

2.在内存中的存储

整数的二进制表示:原码,反码,补码

整形在内存中都是以补码的形式存储

3.大小端字节序存储

存储的单位: 字节

大端字节序存储:

         小端字节存储:


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分别为一个比特位,那么排序只是在字节之间排序,在本身的顺序不变。


网站公告

今日签到

点亮在社区的每一天
去签到