无符号12位二进制加法/子

时间:2013-09-27 02:04:57

标签: math binary bit

我需要用12位无符号数做一些add / sub。

对于无符号的12位整数:

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

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

我得到了01 0100 1001 for x + y

但我该怎么办x-y?

答案是否定的,它不作为unsigned int存在。

1 个答案:

答案 0 :(得分:0)

您需要转换为two's complement表单,然后添加。

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