有没有一种方法可以将数字从基数B1转换为基数B2,而无需使用任何中间基数。
例如:
214(从5到16),而无需先将其转换为十进制,然后再将其转换为十六进制。
-
谢谢
Alok Kr。
要将214 base5转换为不带中间基数的16基数,您“只是”必须知道如何直接在5基数中进行计算。
首先,您需要一张表,其中以15为底的16位数字是什么(将以10为底的基数转换为16时,您需要一个类似的表,只是更容易记住!)。该表很容易创建- 只需从0开始,然后以5为基数递增每一行,直到达到f16基数为止。
f
base 16 | base 5 --------+-------- 0 | 0 1 | 1 2 | 2 3 | 3 4 | 4 5 | 10 6 | 11 7 | 12 8 | 13 9 | 14 a | 20 b | 21 c | 22 d | 23 e | 24 f | 30
现在,您只需要重复除以16(即31 base5)。现在,我们回想起小学时代,并使用长除法(如果这看起来很难,那是因为没有人让您学习以5为基数的时间表!):
第1步:
______ 31 ) 214
第2步:
3 ______ 31 ) 214 - 143
第三步:
3 _____ 31 ) 214 - 143 ---- 21
因此214 base5除以31 base5的结果是3 base5余数21 base5。
这意味着base16中的最低有效数字是21 base5,您可以在表中找到的是b base16。除法的结果是3 base5-如果大于30 base5,我们将再次除法-但是不是,所以这意味着最高有效位是3 base16(再次使用表格)。
因此答案是214 base5 = 3b base16。