定点数的编码表示
真值和机器数
在日常生活中,形如“+15”、“-3”这样带正负号的数字叫做真值,而用0表示“正”,1表示“负”这样把符号数字化的数称为机器数,常用的有原码、补码和反码表示法,真值是机器数所代表的实际值
原码、补码、反码、移码
原码表示法
- 原码表示的优点:
- 与真值的对应关系简单、直观,与真值的转换简单;
- 用原码实现乘除运算比较简便。
- 缺点:
- 0 的表示不唯一,有正负0两个编码;
- 原码加减运算比较复杂。在原码加减运算中,对于两个不同符号数的加法(或同符号数的减法),先要比较两个数的绝对值大小,然后用绝对值大的数减去绝对值小的数,最后还要为结果选择合适的符号。
反码表示法
补码表示法
补码表示法也可以理解为第一位的权值是负的2的n次方,这样可以加快做题
移码表示法
原码和补码之间的转换:整数的原码表示和补码表示是相同的,对于负数,我们可以从右向左找到第一个非0位,这一位及其左面的位不动,右边的位全部取反(不包括符号位)