有没有一种方法可以将数字从基数B1转换为基数B2,而无需使用任何中间基数。
例如:
214(从5到16),而无需先将其转换为十进制,然后再将其转换为十六进制。
-
谢谢
Alok Kr。
要将214 base5转换为不带中间基数的16基数,您“只是”必须知道如何直接在5基数中进行计算。
首先,您需要一张表,其中以15为底的16位数字是什么(将以10为底的基数转换为16时,您需要一个类似的表,只是更容易记住!)。该表很容易创建-
只需从0开始,然后以5为基数递增每一行,直到达到f
16基数为止。
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。
不使用方法,如何用八进制表示十进制负数? 例如: -3(基数10)=37777777775(基数8) 但是我应该用什么算法得到这个结果呢? 这些是我的任务的测试用例:
问题内容: Python允许通过给定基数的字符串通过以下方式轻松创建整数 我想执行相反的操作:从integer创建一个字符串,即我想要一些函数int2base(num, base),例如: 函数名称/参数顺序不重要。 对于任何数量x和底座b是会接受的。 这是一个易于编写的函数:实际上,比在此问题中对其进行描述更容易。但是,我觉得我必须丢失一些东西。 我知道的功能,,,但我不能使用他们的几个原因:
问题内容: 我有这个: 输出: 为什么我在这里出错? 和 错误的含义是什么? 它告诉我什么? 问题答案: 您在这里遇到错误,是因为当您使用接受varargs的函数时,此函数在幕后创建了您在其中传递的对象的新数组。因此,实际上得到 了一个整数数组 。 当您传递整数 数组时,请 在后台创建 一个 整数 数组数组 。这就是为什么您不能通过以下循环对其进行迭代: 尝试像这样更改它: 实际上,您将看到对传递
我必须写一个方法,它有一个Integer类型的参数,并且必须返回一个Character类型的对象。如果给定参数的值可以表示为字符对象,则将其作为字符返回。否则返回null。 我的任务制定得很糟糕,它说:“不安全的转换(例如从int到char)在你的代码中是不允许的”,我想这不是不安全的,但也不允许? 到目前为止我的代码: 我试图通过任何方式修复它,但就是无法提出不使用不安全转换的解决方案,非常感谢
问题内容: 是否有一种优雅的方法将原语数组转换为相应容器对象的数组- 例如,将a 转换为a ?还是我坚持循环浏览并手动执行? 是的,循环并不完全困难。有点丑。 问题答案: Apache Commons Apache Commons / Lang 有一个ArrayUtils类,用于定义这些方法。 所有称为 从原始数组转换为包装器数组的方法 从包装对象数组到原始数组的所有转换 例: 番石榴 但是然后我
我的任务是创建一个方法,该方法将接受用户输入的3位数int,并输出其反方向(123-321)。我不允许将int转换为字符串,否则我将失去分数,我也不允许打印main以外的任何地方。