928第一把刀做完了退出了。要从第二把刀做。广数928ta2怎么刀补弄

无符号二进制数(正数)(8位)(能够表示的十进制数范围 0-255 )

计算机存储和运算过程中一般会用到原码反码和补码
下面以8位二进制机器码举例说明:
原码:最高位代表符号位,其余位为数值的绝对值
反码:存储时正数的反码与原码相同负数的反码符号位保持不变,其余位数按位取反
补码:存储时正数的补碼与原码相同负数的补码在反码的最低位+1得到

举例:分别写出+3和-3的原码,反码和补码

在做减法之前我们首先来看一下,如果没有定义位宽(二进制的位数)那么我们要在参与运算的数值及结果中取一个最大的绝对值,找到能够表示此绝对值的二进制数位宽并+1.

例如: 100+50 = 150 当峩们计算100+50时 定义为宽最小为8位(无符号)或9位(有符号)或更大也可


100-50 = 50 定义为宽最小8位 (有符号)或更大也可
50-100 = -50 定义为宽最小为8位(有符号)或更大也可
-50-100 = -150 定义为宽最小为9位(有符号)或更大也可

接下来我们来看减法运算

例1: 100-50 由于7位2进制最大表示128,则要表示100最少需要7位但由于涉忣减法运算,所以加一位符号位用8位表示

由于运算结果为-150 绝对值150最大,7位2进制数最大只能表示128因此需要8位表示150,又因为是有符号运算因此至少要用9位去表示-150。

实际运算过程为两个二进制补码相加;(可以理解为(-100)+(-50))
此时我们得到一个负数9‘b1,但是不要忘记,负數的存储是以补码形式存储的我们需要把它转化为原码,因为我们太熟悉原码了

求原码的过程和求反码正好相反,首先减一得到反碼,对反码再求反码得到原码:
负数9‘b1,的反码是9‘b1,,原码是9‘b1,

发布了2 篇原创文章 · 获赞 0 · 访问量 8

参考资料

 

随机推荐