目录
一.前言。
二.那么,我们如何才能输入一个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,
如果有小伙伴儿不知道进制转换,可以查看我之前写的这篇文章,比较详细:
/TYRA9/article/details/127197213?spm=1001..3001.5501/TYRA9/article/details/127197213?spm=1001..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----------------------------------------------------------------");