目录

一.前言。

二.那么,我们如何才能输入一个2进制,8进制,或者16进制的数呢?

三.那么,我们如何才能输出一个2进制,8进制,或者16进制的数呢?


一.前言。

         在java中,数据默认是十进制的。(其实C也是)

eg:下列代码中,我们定义一个整型变量i 并将5赋值给i,那么输出结果就是5

public class Demo1 {
    public static void main(String[] args) {
        int i = 5;
        System.out.println("the value of i:" + i);
    }
}

 输出结果:

        

二.那么,我们如何才能输入一个2进制,8进制,或者16进制的数呢?

        Java语言规定:(其实C也是)

{
        2进制前要加0b或者0B

        8进制前要加0

        16进制前要加0x或者0X

}

        而在汇编语言中:

数字后 +  {

                        B        二进制数

                        O        八进制数

                        D        十进制数

                        H        十六进制数

                }

那么我们就以java语言为栗,看看如何输入不同进制的数:

我们先试着输入一个二进制数,0B00001111,根据进制转化,00001111对应于十进制中的15

如果有小伙伴儿不知道进制转换,可以查看我之前写的这篇文章,比较详细:

https://blog.csdn/TYRA9/article/details/127197213?spm=1001.2014.3001.5501https://blog.csdn/TYRA9/article/details/127197213?spm=1001.2014.3001.5501

public class Demo1 {
    public static void main(String[] args) {
        int i2 = 0B00001111;
        System.out.println("The value of i2 = " + i2);
    }
}

因此,输出结果就是:

 我们再试着来输入一个八进制数,0111,根据进制转化,(111) 8 = (73) 10

public class Demo1 {
    public static void main(String[] args) {
        int i3 = 0111;
        System.out.println("The value of i3 is :" + i3);
    }
}

输出结果是:

 我们再来试着输入一个十六进制数,0X2F, 根据进制转化,(2F) 16 = (47) 10,

public class Demo1 {
    public static void main(String[] args) {
        int i4 = 0X2F;
        System.out.println("The value of i4 is :" + i4);
    }
}

输出结果:

三.那么,我们如何才能输出一个2进制,8进制,或者16进制的数呢?

        8进制和16进制建议使用print函数输出,因为同适用于C语言

上代码:

public class Demo1 {
    public static void main(String[] args) {
        int ii2 = 73;
        System.out.printf("%o\n", ii2);
        System.out.printf("%#o\n", ii2);
        System.out.println("--------------------");

        int ii3 = 47;
        System.out.printf("%X\n",ii3);
        System.out.printf("%#X\n",ii3);
    }
}

#表示输出结果会带前导符号,八进制是0,十六进制是0X或ox(%#x就是0x, %#X就是0X)

输出结果:

        2进制就不能用printf函数输出了,可以用Integer.toBinaryString()方法来转成2进制,其中Binary就是二进制的意思。

我们以十进制的15为栗,它的二进制形式是 : 00001111

代码:

public class Demo1 {
    public static void main(String[] args) {
        int ii4 = 15;
        System.out.println("The binary form of ii4 is :" + Integer.toBinaryString(ii4));
    }
}

输出结果:

         拓展:输出的二进制代码不是8位二进制的,我们可以用DemicalFormat来改进:

代码:

public class Demo1 {
    public static void main(String[] args) {
        int ii4 = 15;       

        DecimalFormat df = new DecimalFormat("00000000");
        String ii4BinaryStr = Integer.toBinaryString(ii4);
        Integer ii4BinaryInt = Integer.valueOf(ii4BinaryStr);

        System.out.println("The eight bits' binary form of ii4 is :" + df.format(ii4BinaryInt));
    }
}

输出结果:

 这样就输出了8位二进制。DemicalFormat初学者了解一下即可,不必深究。

System.out.println("END----------------------------------------------------------------");

更多推荐

java如何输入(输出)二进制,八进制,十六进制数?(新手向)