public void test() {
byte[] bytes = new byte[10000000];
for (int i = 0; i < 10000000; i++) {
if (i%3 == 0) {
bytes[i] = 0;
} else {
bytes[i] = 1;
}
}
System.out.println("可以转换的进制范围:" + Character.MIN_RADIX + "-" + Character.MAX_RADIX);
System.out.println("2进制:" + binary(bytes, 2));
System.out.println("5进制:" + binary(bytes, 5));
System.out.println("8进制:" + binary(bytes, 8));
System.out.println("16进制:" + binary(bytes, 16));
System.out.println("32进制:" + binary(bytes, 32));
System.out.println("64进制:" + binary(bytes, 64));// 这个已经超出范围,超出范围后变为10进制显示
System.exit(0);
}
/**
* 将byte[]转为各种进制的字符串
* @param bytes byte[]
* @param radix 基数可以转换进制的范围(2-36),从Character.MIN_RADIX到Character.MAX_RADIX,超出范围后变为10进制
* @return 转换后的字符串
*/
public static String binary(byte[] bytes, int radix){
return new BigInteger(1, bytes).toString(radix);// 这里的1代表正数
}