真值和机器数
- 真值就是我们实际要表示的数字。
- 机器数就是这个数在计算机怎么存的。
有符号数和无符号数
- 有符号数:一个字节占8位,有符号就是有正有负,那么这8位就得有一位表示正号和负号,剩下七位数才表示数值。
- 无符号数:一个字节占8位,既然是无符号数,就是肯定是正的,这8位数都是数值位,对应C语言中的unsigned int。
定点数
- 定点数就是小数点的位置是固定的,假设一个数用一个字节存,也就是8位存,如果是整数,那么小数点的位置在最后边,如果是小数,那么小数点的位置在最高数值位前边,也就是符号位后边(不考虑无符号数)。

定点数的原码表示法
定点整数

定点小数

举例


原码小结
- 假设有符号数用一个字节表示,那么定点整数的最小值为11111111B,定点整数最大值为01111111B,共可以表示255个数,为啥不是256,因为10000000B和00000000B表示的都是0,虽然有256种二进制组合,但是只表示255个数。
- 假设有符号数用一个字节表示,那么定点小数的最小值为11111111B,定点小数最大值为01111111B,共可以表示255个数,为啥不是256,因为10000000B和00000000B表示的都是0,虽然有256种二进制组合,但是只表示255个数。
补码表示法










反码表示法





移码表示法




总结
- 把十进制转二进制,整数部分:除二取余,倒着写;小数部分:乘二取整,正着写。
- BCD码,用8421码来表示一个十进制数,比如93,9对应1001,3对应0011,所以93的BCD码就是10010011
- x和y都是一位BCD码,进行加法运算时,如果和超过了9,则需要加6修正。
- n位无符号数,那么n位都是数值位。
- 正数的原码、反码、补码是一样的。
- x的原码和-x的原码关系:数值位相同,符号位相反
- 原码移位规则:符号位不变,空位补0
- 补码的定义:模加真值。其中对于定点小数(n+1位)模是2,定点整数(n+1位)模是pow(2,n+1)
- 补码比原码(反码)多表示一个数,都是数轴左边的那个数,对于小数补码可以表示-1,对于整数补码可以表示-pow(2,n),都是用-0的原码表示的,即10000000
- x的补码和-x的补码关系:包含符号位,取反,再加1
- 补码移位规则:左移符号位不变,空位补0;右移符号位不变,空位补符号位
- 补码位扩展:小数低位用0扩展,整数高位用符号位扩展
- 根据原码求补码:整数的原码就是补码;对于负数来说,先求出负数的原码,在从最低位起,遇到的0和第一个1不变,其他数值位取反
- 反码就是补码减1;或者反码就是原码数值位取反,表示范围和原码一样。
- 移码和补码的关系:数值位相同,符号位相反。

2918

被折叠的 条评论
为什么被折叠?



