整数的进制间转换
本文介绍了在Java中,Integer 整数在不同进制之间转换的方法。
toBinaryString() 生成整数的二进制字符串
以二进制(基数2)无符号整数形式返回一个整数参数的字符串表示形式。
✍方法声明
public static String toBinaryString(int i);
- 📥入参:i为要转换成字符串的整数。
- 🪐返回值:用二进制(基数2)参数表示的无符号整数值的字符串表示形式。
如果参数为负,该无符号整数值为参数加上2^32;否则等于该参数。将该值转换为二进制(基数2)形式的无前导0的ASCII数字字符串。如果无符号数的大小为零,则用一个零字符‘0’(\u0030
)表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。字符‘0’(\u0030
)和‘1’(\u0031
)被用作二进制数字。
public static void main(String[] args) {
// 二进制转换
String str = Integer.toBinaryString(6);
System.out.println(str);
String s2 = Integer.toBinaryString(-6);
System.out.println(s2);
String s3 = Integer.toBinaryString(0);
System.out.println(s3);
}
11111111111111111111111111111010
0
toHexString() 生成整数的十六进制字符串
以十六进制(基数16)无符号整数形式返回一个整数参数的字符串表示形式。
✍方法声明
public static String toHexString(int i);
- 📥入参:i为要转换成字符串的整数。
- 🪐返回值:参数的十六进制(基数16)无符号整数值的字符串表示形式。
如果参数为负,那么无符号整数值为参数加上2^32;否则等于该参数。将该值转换为十六进制(基数16)的无前导0的ASCII数字字符串。如果无符号数的大小值为零,则用一个零字符‘0’(\u0030
)表示它;否则,无符号数大小的表示形式中的第一个字符将不是零字符。
public static void main(String[] args) {
// 十六进制转换
String str1 = Integer.toHexString(10);
System.out.println(str1);
String str2 = Integer.toHexString(-10);
System.out.println(str2);
String str3 = Integer.toHexString(6);
System.out.println(str3);
String str4 = Integer.toHexString(0);
System.out.println(str4);
}
fffffff6
6
0
toOctalString() 生成整数的八进制字符串
以八进制(基数8)无符号整数形式返回一个整数参数的字符串表示形式。
✍方法声明
public static String toOctalString(int i);
- 📥入参:i为要转换成字符串的整数。
- 🪐返回值:八进制参数(基数8)表示的无符号整数值的字符串表示形式。
如果参数为负,该无符号整数值为参数加上2^32;否则等于该参数。该值被
转换成八进制(基数8)ASCII数字的字符串,且没有附加前导0。
如果无符号数大小为零,则用一个零字符‘0’(\u0030
)表示它;否则,无符号
数大小的表示形式中的第一个字符将不是零字符。用 ‘01234567’作为八进制数
字,它们是从\u0030
到\u0037
的字符。
public static void main(String[] args) {
// 八进制转换
String str1 = Integer.toOctalString(10);
System.out.println(str1);
String str2 = Integer.toOctalString(-10);
System.out.println(str2);
String str3 = Integer.toOctalString(6);
System.out.println(str3);
String str4 = Integer.toOctalString(0);
System.out.println(str4);
}
37777777766
6
0
toString() 生成整数的十进制字符串
✍方法声明
public String toString()
- 🪐返回值:该对象的值(基数10)的字符串表示形式。
返回一个表示指定整数的String对象。将该参数转换为有符号的十进制表示形式,以字符串形式返回它,就好像将参数和基数l0作为参数赋予toString(int,int)方法。
public static void main(String[] args) {
// 十进制转换
Integer i1 = new Integer("36");
System.out.println(i1.toString());
Integer i2 = new Integer("-12");
System.out.println(i2.toString());
}
-12
✍方法声明
public static String toString(int i);
- 📥入参:i为要转换成字符串的整数。
- 🪐返回值:十进制(基数10)参数的字符串表示形式。
public static void main(String[] args) {
int i1 = new Integer("21");
String str1 = Integer.toString(i1);
String str2 = Integer.toString(21);
System.out.println(str1);
System.out.println(str1.equals(str2));
}
true
✍方法声明
返回用第二个参数指定基数表示的第一个参数的字符串表示形式。
public static String toString(int i,int radix);
- 📥入参: i:要转换成字符串的整数。radix:用于字符串表示形式的基数。
- 🪐返回值:使用指定基数的参数的字符串表示形式。
如果基数小于Character.MIN_RADIX或者大于Character.MAX_RADIX 则改用基数10。
如果第一个参数为负,则结果中的第一个元素为ASCII的减号‘-’(\u002D
)。
如果第一个参数为非负,则没有符号字符出现在结果中。
结果中的剩余字符表示第一个参数的大小。如果大小为零,则用一个零字符‘0’(\u0030
)表示;否则,大小的表示形式中的第一个字符将不是零字符。用以下ASCII字符作为数字:0123456789 abcdefghijklmnopqrstuvwxyz
,其范围是从\u0030
到\u0039
和从\u0061
到\u007A
。
如果rdix为N,则按照所示顺序,使用这些字符中的前N个作为其数字。因此,十六进制(基数为16)的数字是0123456789 abcdef
。如果希望得到大写字母,则可以在结果上用String.toUpperCase()
方法:Integer.toString(n,l6).toUpperCase()
.
public static void main(String[] args) {
// 使用自定义基数转换
String str = Integer.toString(3, 2);
System.out.println(str);
String str2 = Integer.toString(-3, 2);
System.out.println(str2);
String str3 = Integer.toString(10, 8);
System.out.println(str3);
String str4 = Integer.toString(10, 16);
System.out.println(str4);
String str5 = Integer.toString(100, 22);
System.out.println(str5);
}
-11
12
a
4c
📝总结
Java提供了多种方法来将整数转换成不同进制的字符串表示形式,这些方法在处理数字转换和编码问题时非常有用。toBinaryString、toHexString和toOctalString方法分别用于生成二进制、十六进制和八进制的字符串表示。toString方法则用于生成十进制的字符串表示。
此外,toString方法还允许用户指定一个基数,从而生成基于该基数的字符串表示形式。这些方法在处理数字系统、网络协议、数据加密等领域时非常重要,因为它们允许开发者以不同的方式表示和操作整数值。在使用这些方法时,需要注意负数的处理方式,以及自定义基数的范围限制。
toBinaryString(int i):
将整数i转换为二进制字符串表示形式。
如果整数为负,将其视为无符号整数,即加上2^32。
toHexString(int i):
将整数i转换为十六进制字符串表示形式。
如果整数为负,同样将其视为无符号整数。
toOctalString(int i):
将整数i转换为八进制字符串表示形式。
如果整数为负,也将其视为无符号整数。
toString(int i):
将整数i转换为十进制字符串表示形式。
toString(int i, int radix):
将整数i转换为指定基数radix的字符串表示形式。
允许radix的值为2到36之间,如果超出此范围,则使用基数10。