1011001 = A 1101011 = B , how does multiplication returns
10010100110011?
这些中是否涉及简单的二进制乘法? 请举例说明。
答案 0 :(得分:3)
w-bit只是n位的典型命名法,因为w通常是字长的缩写
答案 1 :(得分:2)
加法和乘法都与十进制(基数10)相同。你只需要记住这个真值表:
Multiplying
-----------
0 x 0 = 0
0 x 1 = 0
1 x 0 = 0
1 x 1 = 1
Adding
-----------
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0 (w/ carry)
首先添加。要添加,您可以像在普通算术中一样添加,除了按照上面的真值表:
00000101 = 5
+ 00000011 = 3
--------------
00001000 = 8
这是如何工作的,你从右边开始,左边工作。 1 + 1 = 0
,但您将1
带到下一列。因此,下一列为0 + 1
,即1
,但由于您从上一列中携带了另一个1
,因此它真正1 + 1
,即0
。您在下一列1
上方1 + 0
,但由于进位而非1 + 1
。因此,再次0
,最后将1
移至下一列0 + 0
,但由于我们的进位,变为1 + 0
,即1
。所以我们的答案是1000
,小数为8
。 5 + 3 = 8
,所以我们知道我们是对的。
接下来,乘以:
00000101 = 5
x 00000011 = 3
----------
101 = 5
+ 1010 = 10
----------
1111 = 15
这是如何工作的,您将顶部数字00000101
乘以第二行中最右边的数字。因此00000011
是我们的第二行,1
是最右边的数字,所以00000101
次1
= 101
。接下来,将0
占位符放在其下方最右侧的列中,就像在正常乘法中一样。然后,我们将原始数字00000101
乘以原始问题00000011
中左下一位数。它再次产生101
。接下来,您只需添加101 + 1010 = 1111
...这就是答案
答案 2 :(得分:1)
是的,这是简单的二进制乘法:
>>> 0b1011001
89
>>> chr(_)
'Y'
>>> 0b1101011
107
>>> chr(_)
'k'
>>> ord('Y') * ord('k')
9523
>>> bin(_)
'0b10010100110011'
答案 3 :(得分:1)
如果你想要乘法,你只需将乘法与十进制数相同,除了你必须在二进制中添加进位:
1011001
x1101011
-------
1011001
1011001.
0000000..
1011001...
0000000....
1011001.....
1011001......
--------------
10010100110011
答案 4 :(得分:1)
w-bit单词本身并不是什么。假设w
的值先前已在使用“w-bit word”的上下文中定义,则它仅表示由w
位组成的字。例如:
A version of RC6 is more accurately specified as RC6-w/r/b where the word size
is "w" bits, encryption consists of a nonnegative number of rounds "r," and
"b" denotes the length of the encryption key in bytes. Since the AES
submission is targetted at w=32, and r=20, we shall use RC6 as shorthand to
refers to such versions.
因此,在该文档的上下文中,“w位字”只是一个32位值。
至于你的乘法,我不确定你在问什么。 Google确认结果是正确的: