缩短二进制——Java
缩短二进制
http://www.nowcoder.com/questionTerminal/4ffcc9f206b949ddb057ee0099b34d51
答案一:利用 printf 实现进制转换
public class Main { public static void main(String[] args) { System.out.printf("0"+"%o",1234); System.out.printf(" 0X"+"%X",1234); } }
解析:
- "%d"表示以十进制整数形式输出
- "%o"表示以八进制形式输出
- "%x"表示以十六进制输出
- "%X"表示以十六进制输出,并且将字母(A、B、C、D、E、F)换成大写
- "%e"表示以科学计数法输出浮点数
- "%E"表示以科学计数法输出浮点数,而且将e大写
- "%f"表示以十进制浮点数输出,在"%f"之间加上".n"表示输出时保留小数点后面n位
答案二:利用 Integer 实现进制转换
public class Main { public static void main(String[] args) { int i=1234; System.out.println("0"+Integer.toOctalString(i)+" 0X"+Integer.toHexString(i).toUpperCase()); } }
解析:
Integer类的方法 - Integer.toBinaryString()可实现十进制转换成二进制
- Integer.toOctalString()可实现十进制转换成八进制
- Integer.toHexString()可实现十进制转换成十六进制
- Integer.valueOf(s, radix)
将第一个参数解释为用第二个参数指定的基数表示的有符号整数
将 s 以 radix 进制的形式转换为十进制 - toUpperCase表示转换为大写字母
- toLowerCase表示转换为小写字母
答案三:利用 BigInteger 实现进制转换
import java.math.BigInteger; public class Main { public static void main(String[] args) { System.out.println("0" + change("1234",10,8) + " 0X" + change("1234",10,16)); } /** * number 要转换的数 * from 原数的进制 * to 要转换成的进制 */ private static String change(String number, int from, int to) { String str = new BigInteger(number, from).toString(to); return str.toUpperCase(); } }
解析:
change(String number, int from, int to)
number 要转换的数
from 原数的进制
to 要转换成的进制