如何使用大脑将十六进制转换为十进制?

Iva*_*nov 24 hex

打开计算器做这么小的东西对我来说很烦人,我坚信这句话"你知道的越多越好!" 所以我在这里问你如何将十六进制转换为十进制.

直到那一刻我使用以下公式:

Hex:        Decimal:
12          12+6
22          22+2*6
34          34+3*6
49          49+4*6
99          99+9*6
Run Code Online (Sandbox Code Playgroud)

当我继续使用更高的数字(如C0或FB)时,我感到困惑

你正在使用的公式(大脑,不是功能)是什么?

And*_*ler 38

如果你认为十六进制是16的基数,它实际上很容易:

从最低有效数字开始,向最重要的数字(从右到左)开始,然后将数字乘以16的增加,然后对结果求和.

例如:

0x12 = 2 +(1*16)= 18

0x99 = 9 +(9*16)= 153

然后,记住A = 10,B = 11,C = 12,D = 13,E = 14和F = 15

所以,

0xFB = 11 +(15*16)= 251

  • @Vippy,也许这个例子不清楚,但是“将数字与 16 的幂相乘”确实适用于超过 2 位的数字。 (2认同)

gbi*_*chi 17

这不是公式..这甚至不像公式......

公式是:

X*16 ^ y其中X是您要转换的数字,y是数字的位置(从右到左).

所以..如果你想将DA145转换为十进制将...

(5*16 ^ 0)+(4*16 ^ 1)+(1*16 ^ 2)+(10*16 ^ 3)+(13*16 ^ 4)

你必须记住这封信是:
A - 10
B - 11
C - 12
D - 13
E - 14
F - 15

  • 他的公式对于它运作的数字类是完全正确的(而不仅仅是巧合).它只能处理超过2位数字或任何字母数字. (7认同)

Joh*_*ers 9

当我发现我使用的十六进制数字是32位时,我几乎停止了这样做.那里没那么有趣.

对于较小的数字,我(最终)记住了一些模式:10 = 16,20 = 32,40 = 64,80 = 128(因为100 = 256,而80是少一点).200 = 512我记得因为我曾经使用的一些机器,其页面大小为512(不再记得什么机器!).1000 = 4096因为这是另一台机器的页面大小.

这就是全部.除此之外,我补充道.


Chr*_*utz 7

为了记录,你的大脑确实使用了一种找到答案的功能方法.这是我的大脑用来查找十六进制数值的函数:

  1. 将十六进制数除以单个数字.
  2. 将每个数字转换为它的十进制值(0-9保持不变,A为10,B为11等)
  3. 从最右边的数字开始,将每个值乘以16 ^ X幂,其中X是距最右边数字的距离(所以最右边的数字是16 ^ 0,或者1,接下来是16 ^ 1,或16,接下来是16 ^ 2,或256等)
  4. 将所有值添加到一起.