一、整型数据在内存中的存储
1.基本的整形数据 (内存中分配的字节数)
- char (1)
signed char
unsigned char(1) - short
signed short[int]
unsigned char - int
signed int - long
signed long[int]
unsigned long[int]
注意:字符是以整数形式(字符的ASCII代码)存放在内存单元的
2.介绍原码、反码和补码的概念
计算机中的符号有三种表示方法,原码、反码和补码。三种表示方法都有符号位(若存在符号位,符号位就是二进制数的左边第一位)和数值位两部分,符号位都是用0表示“正”,用1表示“负”,数值位三种表示方法各不相同。
原码:直接将数按正负翻译成二进制就可以。
反码:将原码的符号位不变,其他位按位取反得到。
补码:给反码低位加 1.
对整形数据来说,数据存放在内存中其实是存放的补码
下面举个例子分析整数在内存中的存储
3.大小端存储介绍
大端(存储)模式:数据的低位保存在内存的高地址中。而数据的高位保存在内存的地地址中。
小端(存储)模式:数据的低位保存在内存的低地址中。而数据的高位保存在内存的高地址中。
二、浮点数在内存中的存储
1.浮点数的分类
float
double
long double
浮点型数据是用来表示具有小数点的实数的。
2.浮点数在内存中的存储
(1)任何一个二进制的浮点数都可以表示为下面的形式
(-1)^S*M*2^E
M表示有效数字,大于1,小于2
2^E表示指数位。
(2)IEEE规定
对于32位的浮点数,最高的 1 位是符号位S,接着的8位是指数E,剩下的32位是有效数字M。
对于64位的浮点数,最高 1 位是符号位S,接着 11 位是指数E,剩下的52位为有效数字M。