本期目录
1. 数据类型的介绍
2. 整形在内存中的存储
3.大小端字节序
1.数据类型
char字符数据类型 不同的类型决定了内存中开辟空间的大小
shot短整形 int整形 long长整型 long long 更长的整形
float单精度浮点型 double双精度浮点型
在整形家族中会分为有符号signed 和unsigned无符号之分
例如signed int 和unsigened int (char 的有无符号取决于编译器 vs下的 char为signed char)
2.整形在内存中的存储
在讲存储之前首先要知道 原码 补码 反码 的概念(在内存中存储的是补码)
正数的补码原码反码三码相同 正数的原码为直接将整数翻译成对应的二进制即可
负数的原反补三码则需要计算 负数原码直接将二进制按照正负数的形式翻译成二进制就可以。
(注意符号位负数的符号位为1正数的符号位为0)
负数的反码为将原码的符号位不变,其他位依次按位取反就可以得到了。
负数的反码加1就得到了补码
在内存中存储的是补码但却不是以二进制的方式存储的,存储中是以16进制存储的
正如图片所示 a变量的存储值为16进制的 14 00 00 00(这里涉及到存储顺序的问题在大端小端中会讲到)
14 00 00 00翻译为2进制为 00000000 00000000 00000000 00010100 翻译成10进制为20.
3.大小端字节序
再说大小端之前先提出一个概念数据的地位和数据的高位, 如在10进制中 数字 123 ,3为数据的低位,1为数据的高位 。在16进制中也是一样如00 00 00 16,16为数据的低位,为首的00 为数据的高位
大端模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中
小端模式:是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中
(内存在使用时是从高地址向低地址用起)
正如上图所示一样 存储的20为 14 00 00 00就是低位数据存储在了低地址是小端模式。
感谢你能看完希望在你学习的路上会给你提供帮助!