X = 01001001和Y = 10101010
如果我想将它们一起添加,我该怎么做?他们是"两个人的补充"......我尝试了很多东西,但我不太确定我得到了正确的答案,因为似乎有不同类型的规则.
只是想确保它是正确的:
1.添加它们,因为它们不转换负数
2.转换你得到的负数,这是总和.
f.eks 01001001
+ 10101010 = 11110011 => 00001100 => 1101 => -13
或?
1.转换负数
2.将它们加在一起并转换为负数
f.eks 01001001
+ 10101010 => 01001001 + 01010110 => 10011111 => 01100001 => -97
所以基本上我想做的是:XY和X + Y
有人能告诉我该怎么做吗?
一些资源网站:
student-binary
celtickane
swarthmore
二进制补码的优点在于二进制级别是解释而不是算法 - 添加两个有符号数的硬件与无符号数相同(忽略标志位).
你的第一个例子 - "只是添加它们" - 正是答案.你的例子数字
01001001 = 73
10101010 = -86
所以,正确的答案确实是-13.
减法是一样的,因为两个补码数不需要特殊处理:你"只是减去它们".
注意,事情变得有趣的是溢出/下溢位的处理.您不能将73 - ( - 86)的结果表示为8位二进制补码数...