-2

如何将数字从二进制转换为基数 4 without using extra space?例如,如果二进制是 1010,那么它会以 4 为底数为 22?我想要算法而不是通过一些内置函数来做,如果我添加一个不需要生成任何字符串作为输出的条件怎么办。我必须使用给定的字符串空间来做到这一点。

4

2 回答 2

2

Java 的 Integer 类内置了此功能(查看此SO 答案)。它被称为parseInt()toString()的基数属性。请注意,重要的是要了解这仅限于Character类中MINMAX基数值之间的基数值,因此不要期望毫不费力地将数字转换为基数 1024。

对于您的问题,您可以这样做:

int value = Integer.parseInt("1010", 2); //From Binary
String base4value = Integer.toString(value, 4); //To base 4
于 2012-10-09T18:20:54.407 回答
2

是的,二进制的 1010 是以 4 为底的 22。这很简单,因为 4 是 2 的幂,因此转换很简单 10 = 2, 10 = 2 -> 22。就像一个字节是两个十六进制数字一样。

于 2012-10-09T18:41:36.147 回答