Integer整数的进制间转换

整数的进制间转换

本文介绍了在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);
    }
110
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);
    }
a
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);
    }
12
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());
    }
36
-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));
    }
21
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
-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。

转载请注明出处:码谱记录 » Integer整数的进制间转换
标签: