2012-10-09 291 views
-2

如何将二进制数字转换为四进制数字?对于例如如果二进制是1010,那么它在基准4中是22?我想有算法,而不是通过一些构建的函数来完成它,如果我添加一个条件,我不需要生成任何字符串作为输出,那又怎样?我必须使用给定的字符串空间来做到这一点。二进制到四进制

+0

我试着从最后开始意味着最不重要的位,但是我不能在不使用额外空间的情况下做到这一点。 –

回答

2

Java的Integer类具有内置的此功能(结帐此SO answer)。它被称为parseInt()toString()的基数属性。请注意,重要的是要明白,这仅限于Character类中的MINMAX基数值之间的基数值,因此不要指望将数字转换为基数1024而无需付出一点努力。

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

int value = Integer.parseInt("1010", 2); //From Binary 
String base4value = Integer.toString(value, 4); //To base 4 
2

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