我正在尝试将两个8位数字相加,其中一个为负数,第二个为正数。这就是我的工作:
92-113
所以我将每个数字表示为二进制
92 - 01011100
113 - 01110001
将0更改为1,将1更改为0后,我得到:
10001110 and after adding 1 I have 1000111 which is -113
然后我将它们加起来然后我得到了:
11101011
什么完全没有意义,我可能做错了什么?我真的很想知道我犯错误的地方,因为这是真正的基本知识; /
答案 0 :(得分:0)
你没有遗漏任何东西 - 11101011
是8位有符号二进制文件中二进制等价的-21(92-113)。
对于烧结整数类型,left = most位确定数字是正数还是负数。为了得到加法逆,你翻转所有位,但最右边。它与您用于将113转换为-113的过程相同。
这样做会产生00010101
,即21。所以11101011
是-21。