1

除了转换成十进制之外,是否有任何捷径或一些快速的方法可以将 2 个小十六进制数相乘?就像笔和纸的方法

谢谢,

基兰

4

4 回答 4

2

长手二进制数学的完成方式与普通十进制相同,只需携带 2。

1010110 x 101

Add these numbers
  1010110 ones column
 00000000 tens column (or 2s column)
101011000 100s column (or 4s column)
=========
110101110
于 2010-12-17T22:51:38.580 回答
2

当你学习以 10 为底的乘法时,你被教导要记住乘法表。以 10 为基数的表如下:

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
--+---+---+---+---+---+---+---+---
2 | 4 | 6 | 8 |10 |12 |14 |16 |18
--+---+---+---+---+---+---+---+---
3 | 6 | 9 |12 |15 |18 |21 |24 |27
--+---+---+---+---+---+---+---+---
etc...

当您在其他基数中进行乘法运算时,您使用不同的乘法表(以 16 为基数)执行相同的快捷方式:

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F
--+---+---+---+---+---+---+---+---+---+---+---+---+---+---
2 | 4 | 6 | 8 | A | C | E |10 |12 |14 |16 |18 |1A |1C |1E
--+---+---+---+---+---+---+---+---+---+---+---+---+---+---
3 | 6 | 9 | C | F |12 |15 |18 |1B |1E |21 |24 |27 |2A |2D
etc...
于 2010-12-17T23:06:51.663 回答
1

你没有提到平台/语言/等。

编辑:在我写完这篇文章后,OP 澄清了“笔和纸”。

Windows 计算器具有十六进制、八进制和二进制模式。

但最终,计算机中的数字是以 2 为底的。支持十进制、十六进制等的工具/语言这样做是为了方便坐在键盘上的猿猴,但在计算机的内存中,数字最终是以 2 为底的。

例如,在 C 中,以下两个语句是相同的(在词法分析之后):

int x = 0xf * 0xf0; // hexidecimal
int x = 017 * 0360; // octal
int x = 15 * 240; // decimal

不同的符号是为了程序员的方便,但在机器中这些数字都以相同的方式表示。

于 2010-12-17T22:22:42.323 回答
0

使用Linux?您可以使用 dc 进行十六进制数学运算。将输入和输出基数设置为 16,一切顺利。

于 2010-12-17T22:14:41.937 回答