除了转换成十进制之外,是否有任何捷径或一些快速的方法可以将 2 个小十六进制数相乘?就像笔和纸的方法
谢谢,
基兰
长手二进制数学的完成方式与普通十进制相同,只需携带 2。
1010110 x 101
Add these numbers
1010110 ones column
00000000 tens column (or 2s column)
101011000 100s column (or 4s column)
=========
110101110
当你学习以 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...
你没有提到平台/语言/等。
编辑:在我写完这篇文章后,OP 澄清了“笔和纸”。
Windows 计算器具有十六进制、八进制和二进制模式。
但最终,计算机中的数字是以 2 为底的。支持十进制、十六进制等的工具/语言这样做是为了方便坐在键盘上的猿猴,但在计算机的内存中,数字最终是以 2 为底的。
例如,在 C 中,以下两个语句是相同的(在词法分析之后):
int x = 0xf * 0xf0; // hexidecimal
int x = 017 * 0360; // octal
int x = 15 * 240; // decimal
不同的符号是为了程序员的方便,但在机器中这些数字都以相同的方式表示。
使用Linux?您可以使用 dc 进行十六进制数学运算。将输入和输出基数设置为 16,一切顺利。