如何将数字从二进制转换为基数 4without using extra space?例如如果二进制是 1010 那么基数 4 就是 22?我希望拥有该算法,而不是通过一些内置函数来完成它,如果我添加一个不必生成任何字符串作为输出的条件呢?我必须使用给定的字符串空间来做到这一点。
Java 的 Integer 类内置了此功能(查看此所以答案 https://stackoverflow.com/a/2858122/16959)。它被称为基数属性解析Int() http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#parseInt%28java.lang.String,%20int%29 and toString() http://docs.oracle.com/javase/6/docs/api/java/lang/Integer.html#toString%28int,%20int%29。请注意,重要的是要了解这仅限于 a 之间的基数值MIN http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html#MIN_RADIX and MAX http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html#MAX_RADIX中的基值特点 http://docs.oracle.com/javase/6/docs/api/java/lang/Character.html所以不要指望不费吹灰之力就能将数字转换为基数 1024。
对于你的问题你可以这样做:
int value = Integer.parseInt("1010", 2); //From Binary
String base4value = Integer.toString(value, 4); //To base 4