计算机基础:18、二进制--定点数的运算
1、定点数加法
1.1、加法
定点数加法运算方式如下:
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/433ea70d6ea577b1.jpeg)
数值位与符号位一同运算,并将符号位产生的进位自然丢掉
假设定点数A+B,在计算机里面则是:`A的补码+B的补码=结果补码`
拿到结果的补码后再求原码。
具体运算如下方例子:
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/eec57030b649a106.webp)
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/ea91d84a82557da5.webp)
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/bcafc120671304eb.webp)
1.1.1、结果溢出的解决方法
定点数加法结果溢出的例子:
下方图片例子中A和B的运算结果发生了溢出,导致结果不对;
因为二进制数1,10010000
和1,11010000
两数相加的结果溢出了,导致8位数无法存储下来;
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/0a0ce631ec450943.webp)
上图中的溢出问题可以通过双符号位判断法来解决,比如表示正负数的单符号位0
和1
换成双符号位00
和11
来表示正负。
比如原来二进制正数`0,01001000`变成`00,01001000`,负数`1,01001100`变成了`11,01001100`在运算的时候双符号位产生的进位也丢弃掉,最终如果结果的双符号位不同,则表示溢出
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/43a754c811e7ec5c.webp)
使用双符号位判断出溢出:
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/0a0ce631ec450943.webp)
2、定点数减法
定点数减法按照下图规则进行运算:
![在这里插入图片描述](https://img.php1.cn/3cd4a/1e618/c5a/d5d40da532c3a782.png)
定点数减法运算的例子:
![在这里插入图片描述](https://img.php1.cn/3cd4a/1eebe/cd5/bdd1ca32a69bc8b2.webp)