计算机基础:18、二进制--定点数的运算
1、定点数加法
1.1、加法
定点数加法运算方式如下:
数值位与符号位一同运算,并将符号位产生的进位自然丢掉
假设定点数A+B,在计算机里面则是:`A的补码+B的补码=结果补码`
拿到结果的补码后再求原码。
具体运算如下方例子:
1.1.1、结果溢出的解决方法
定点数加法结果溢出的例子:
下方图片例子中A和B的运算结果发生了溢出,导致结果不对;
因为二进制数1,10010000
和1,11010000
两数相加的结果溢出了,导致8位数无法存储下来;
上图中的溢出问题可以通过双符号位判断法来解决,比如表示正负数的单符号位0
和1
换成双符号位00
和11
来表示正负。
比如原来二进制正数`0,01001000`变成`00,01001000`,负数`1,01001100`变成了`11,01001100`在运算的时候双符号位产生的进位也丢弃掉,最终如果结果的双符号位不同,则表示溢出
使用双符号位判断出溢出:
2、定点数减法
定点数减法按照下图规则进行运算:
定点数减法运算的例子: