计算机中二进制数表示
1.定点数
小数点的位置是固定的
2.浮点数
小数点的位置不固定
上图
例:0.35*10^2
0.35是尾数
10是阶基(计算机用的是二进制2^5 2^10等等,所以一般是2)
2是阶码
还有阶码和阶基都有符号位有长度,各占一位
- 浮点数的优点
不考虑小数点的位置,所以数的范围变得非常大
运算速度比定点数快很多 - 规格化浮点数
因为一个数有多种表示方法例0.35,0.035*10^1…,所以需要规格化使每个数的表示方法唯一(上图)
无符号数
- 一个数到底是有符号数还是无符号数,计算机的底层也就是硬件是无法识别的,因为计算机是开关元件也就是逻辑器件做的,0和1是什么性质的,它不管,只有程序员知道
- 如果你要是无符号数运算,你后边用程序语言必须是去按照无符号数的处理方法来处理它的结果,反之亦然
补码的作用
- 解决了零的唯一性问题
+0的 -0的原码与反码都不一样,但是补码一样,所以计算机中处理的数据都是补码的形式 - 将减法运算转变为加法运算
如下图
所以乘法,除法也是移位和加法的运算
上图中的FD就是11111011,刚好11111011就是-3的补码,这就是编译器做的工作
计算机能力的局限性
无符号数的表示范围是0~ 255( 0~2^8-1)
有符号数的表示范围如下:
符号二进制与十进制数的转换