十六进制转十进制公式
Hexadecimal to decimal conversion formula
来自本书
《Java编程入门,综合版第10版-Daniel Liang》第6章,第217页。
从下面的文字中,我无法理解十六进制到十进制转换的公式。
hn * 16n + hn-1 * 16n-1 + hn-2 * 16n-2 + ... + h2 * 162 + h1 * 161 + h0 * 160
For example, the hex number AB8C is
10 * 163 + 11 * 162 + 8 * 161 + 12 * 160 = 43916
我理解公式的第二部分以及给定示例中的答案是如何得出的,但不理解第一部分
hn * 16n + hn-1 * 16n-1 + hn-2 * 16n-2 +
为什么减去十六进制数和幂?
在给定的示例中,减法没有完成,那它是做什么用的?
感谢您的帮助。
鉴于 T.J,我不确定我的问题不清楚是什么意思。克劳德能够提供一个消除我困惑的答案。
我认为问题的措辞非常清楚地说明了我的问题所在。
我是新来的,所以我可能遗漏了一些明显的东西?
我应该接受答案吗?
没关系,只是注意到答案附近的刻度线。
减法是在示例中完成的,在指数中:n是十六进制数字中的位数减一。例如,对于 AB8C,n 是 3。公式的意思是:
- 您将 A 乘以 16 提高到 n,例如
0xA * 16^3
- 你将 B 乘以 6 提高到 n-1,例如
0xB * 16^2
- 您将 8 乘以 6 提高到 n-2,例如
0x8 * 16^1
- 你将 C 乘以 6 提高到 n-3,例如
0xC * 16^0
- 将这些结果加在一起
因此,如果您正在编写将十六进制转换为十进制的代码,则需要有一个 n 和一个循环,并递减 n 在每个循环中。
来自本书 《Java编程入门,综合版第10版-Daniel Liang》第6章,第217页。
从下面的文字中,我无法理解十六进制到十进制转换的公式。
hn * 16n + hn-1 * 16n-1 + hn-2 * 16n-2 + ... + h2 * 162 + h1 * 161 + h0 * 160
For example, the hex number AB8C is
10 * 163 + 11 * 162 + 8 * 161 + 12 * 160 = 43916
我理解公式的第二部分以及给定示例中的答案是如何得出的,但不理解第一部分
hn * 16n + hn-1 * 16n-1 + hn-2 * 16n-2 +
为什么减去十六进制数和幂? 在给定的示例中,减法没有完成,那它是做什么用的?
感谢您的帮助。
鉴于 T.J,我不确定我的问题不清楚是什么意思。克劳德能够提供一个消除我困惑的答案。 我认为问题的措辞非常清楚地说明了我的问题所在。 我是新来的,所以我可能遗漏了一些明显的东西? 我应该接受答案吗?
没关系,只是注意到答案附近的刻度线。
减法是在示例中完成的,在指数中:n是十六进制数字中的位数减一。例如,对于 AB8C,n 是 3。公式的意思是:
- 您将 A 乘以 16 提高到 n,例如
0xA * 16^3
- 你将 B 乘以 6 提高到 n-1,例如
0xB * 16^2
- 您将 8 乘以 6 提高到 n-2,例如
0x8 * 16^1
- 你将 C 乘以 6 提高到 n-3,例如
0xC * 16^0
- 将这些结果加在一起
因此,如果您正在编写将十六进制转换为十进制的代码,则需要有一个 n 和一个循环,并递减 n 在每个循环中。