int num =5;String binaryStr1 =String.format("%8s",Integer.toBinaryString(num)).replace(' ','0');String binaryStr2 =String.format("%16s",Integer.toBinaryString(num)).replace(' ','0');System.out.println(binaryStr1);System.out.println(binaryStr2);
# 输出结果00000101
0000000000000101
手动补零
int num =5;String binaryStr1 ="0".repeat(8-Integer.toBinaryString(num).length())+Integer.toBinaryString(num);String binaryStr2 ="0".repeat(16-Integer.toBinaryString(num).length())+Integer.toBinaryString(num);System.out.println(binaryStr1);System.out.println(binaryStr2);
# 输出结果00000101
0000000000000101
三、数值转八进制字符串
调用 Integer.toOctalString()
int num =63;String octStr =Integer.toOctalString(num);System.out.println(octStr);
# 输出结果77
调用 Integer.toString(),指定进制
int num =63;String octStr =Integer.toString(num,8);System.out.println(octStr);
# 输出结果77
四、数值转十六进制字符串
1、基本转换
调用 Integer.toHexString()
int num =255;String hexStr =Integer.toHexString(num);System.out.println(hexStr);
# 输出结果ff
调用 Integer.toString(),指定进制
int num =255;String hexStr =Integer.toString(num,16);System.out.println(hexStr);
# 输出结果ff
2、补零
调用 String.format()
占位符
说明
%04x
对整数进行十六进制格式化,宽度为 4,不足的部分用 0 填充
%08x
对整数进行十六进制格式化,宽度为 8,不足的部分用 0 填充
%04X
对整数进行十六进制格式化,宽度为 4,不足的部分用 0 填充,并且将小写字母转换为大写字母
%08X
对整数进行十六进制格式化,宽度为 8,不足的部分用 0 填充,并且将小写字母转换为大写字母
int num =255;String hexStr1 =String.format("%04x", num);String hexStr2 =String.format("%08x", num);System.out.println(hexStr1);System.out.println(hexStr2);// 大写String hexStr3 =String.format("%04X", num);String hexStr4 =String.format("%08X", num);System.out.println(hexStr3);System.out.println(hexStr4);