深入理解计算机系统 第二章 信息的表示和处理 part2

 
上一周遗留问题的解决
问题:原码、反码、补码是只针对有符号数吗?无符号数有没有这三种编码方式?
得到的答案:对于无符号数,原码、反码和补码是一致的
进一步,由于有符号数是以补码的形式存储在计算机中的,而无符号数三种编码都是一致的,所以我们可以说,整型数在计算机中是以补码的形式存在的
参考文章:
 
 
浮点数
对于浮点数,看了刘大的文章《看完这篇文章,你肯定理解什么是浮点数了》之后,知道了两点
1、浮点数是如何存储的
2、浮点数为什么不精确
关于浮点数为什么不精确,用我自己的话总结就是:
1、十进制小数部分转为二进制小数部分的时候,不是所有的十进制小数都能被精确的转换
2^(-1) = 0.5,2^(-2) = 0.25,2^(-3) = 0.125,2^(-4) = 0.0625……
而只有能被以上这些数精确表示(精确表示:对于某个数为 x,以上这些数分别称为 a1、a2、a3、a4……,能写成 x = n*a1 + m*a2 + z*a3…… 的形式,且项的个数是有限的,其中 n、m、z 为整数 )的数,才能被浮点数精确地表示出来。
2、表示小数的二进制位有限(根据 IEEE 754 标准,在 32 位机器中,23 位用于表示小数) 
但是,对于浮点数的点到底“浮”在哪里?还是不清楚。既然规定了符号位(1位)、尾数(23位)和指数(8位)的位数,那浮点数不还是定点数吗?
 
 
原文地址:https://www.cnblogs.com/stone94/p/9866674.html