0

我需要用 12 位无符号数做一些加/减。

对于无符号 12 位整数:

x = 0111 1000 0101, x = 1925
y = 1011 1100 0100, y = 3012

z = x+y = ?
z = x-y = ?

我得到了 x + y 的 0011 0100 1001

但是我应该为 x - y 做什么?

答案是否定的,它不作为无符号整数存在。

4

1 回答 1

0

您需要转换为二进制补码形式,然后添加。

x - y = x + y'

y'的补码在哪里y

用二进制补码求反的一个简单技巧是从右到左写你的数字。你基本上复制了这个数字。写下所有的零,直到遇到 1,然后也写下 1。然后翻转所有剩余的数字。

例如否定0110 1000

0110 1000
---------
      000    copy zeros until first 1
     1000    copy the 1
1001 1000    flip all remaining bits
于 2013-09-27T02:06:40.633 回答