- 计算机体系结构中的 w-bit 字是什么?
- 对于两个 7 位字
1011001 = A 1101011 = B , how does multiplication returns
10010100110011 ?
这些不涉及简单的二进制乘法吗?请举个例子。
1011001 = A 1101011 = B , how does multiplication returns
10010100110011 ?
这些不涉及简单的二进制乘法吗?请举个例子。
w-bit 只是 n-bit 的典型命名法,因为 w 通常是 word size 的缩写
是的,这是简单的二进制乘法:
>>> 0b1011001
89
>>> chr(_)
'Y'
>>> 0b1101011
107
>>> chr(_)
'k'
>>> ord('Y') * ord('k')
9523
>>> bin(_)
'0b10010100110011'
加法和乘法都与十进制(以 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
,但您将 a1
转移到下一列。所以下一列是0 + 1
,这将是1
,但是由于您1
从上一列中进行了另一列,所以它实际上1 + 1
是0
。您1
在下一列上进行了 a ,即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
times 1
= 101
。接下来,您0
在其下方最右侧的列中放置一个占位符,就像在正常乘法中一样。然后你将我们最初的最高数字乘以我们00000101
原始问题中左边的下一个数字00000011
。它再次产生101
。接下来你只需添加101 + 1010 = 1111
......这就是答案
如果要相乘,只需像十进制数一样进行乘法运算,但必须添加二进制进位:
1011001
x1101011
-------
1011001
1011001.
0000000..
1011001...
0000000....
1011001.....
1011001......
--------------
10010100110011
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 确认结果正确: