目录
1.前言:
本文介绍在计算机中有符号整数的表示和运算。推荐阅读时长:20分钟
2.原码
现在现在的机器字长都是32位或者64位
1.最高的一位表示符号位用来表示正负 0表示正 1表示负。剩下的n个位置表示数值位
2.如果机器字长位n+1位,带符号整数的原码表示的范围就在0到2的n次方-1;
所以如果是机器字长32位的,那么表示的数值就是在0到2的31次方-1
3.真值0有两种形式:+0和-0,一个是符号位为0,数值为都是0;另一个是符号位为1,数值位全为0;
我们以以八位寄存器为例,现在机器是32位或者是64位的也是同理。这里选择8位的是方便讲解。

灰色的那个格子是符号位就是符号位
2.1原码的缺点
原码的缺点:符号位不能参与运算,需要设计复杂的硬件电路在能处理,费钱,贵
因此用补码表示真值 做到 符号位可以参与运算
以上面的两个数字为例,真值是+19和-19相加结果应该是0
00010011加10010011结果是10100110,符号位是1表示负数,显然是错误的。
所以为了让符号位也能参与运算节约电路的成本,出现了补码
3.原码反码补码的转换
3.1正数
正数的原码、反码、补码相同
3.2负数
负数的原码变为反码是符号位不变数值位取反
反码换成补码是在末位+1
补码变为原码可以反过来操作,末位-1,数值位取反。
也可以和原码变为补码那样符号位不变数值位取反,然后末位+1;

本文详细解释了有符号整数的原码表示及其缺点,介绍了补码的发明以解决符号位运算问题,包括正负数的转换规则、补码加减法运算方法,以及如何根据减数的补码求其负值的补码。作者强调了现代计算机中通常使用补码进行运算和存储,并预告了后续将探讨的相关主题。
906

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



