目录
一.前言。
二.那么,我们如何才能输入一个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如何输入(输出)二进制,八进制,十六进制数?(新手向)
发布评论