整数的存储
整数在内存中以二进制补码的形式存储–将输入的整数转化为二进制后取反码后加一得到补码,正数的原码,反码,补码相同
浮点数的存储
浮点数和整数在内存中存储方式不同,浮点数在内存中的存储就是S.M.E相关的值
[] [][][][][][][][] [][][][][][][][][][][][][][][][][][][][][][][]
S(1bit) M(8bit) E(23bit)
对于32位浮点数(float),最高位存储符合位S,接着8位存储指数E剩下23位存储有效数字M
[] [][][][][][][][][][][] [][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][][]
S(1bit) M(11bit) E(52bit)
[][][][][][][]
对于64位浮点数(double),最高位存储符合位S,接着11位存储指数E剩下52位存储有效数字M
S–符号位
M–小数点后的数字 1<=M<2
E–小数点前的数组 是无符号整数
为防止E有些情况下是负数,E在存入内存时必须加上一个中间数
对于8位的E中间数的127
对于32位的E中间数的1023
若要存储一个为V的浮点数:
V=(-1)^S * M *2^E
例如:
V=5.5
=(-1)^0 * 1.011 * 2^2
S=0 M=1.011 E=2