Java中二进制、八进制、十六进制与十进制的相互转化
程序员文章站
2022-03-13 15:35:42
...
昨天写了一篇Java中String、char数组和int之间的互相转换的文章,今天同样记录汇总下刷题常见的进制转化问题。
1 声明二进制、八进制、十六进制的变量
/**
二进制变量的声明以0b为前缀;
八进制变量的声明以0为前缀;
十六进制变量的声明以0x为前缀。
*/
int a = 0b11; //声明二进制变量
int b = 011; //声明八进制变量
int c = 11; //声明十进制变量
int d = 0x11; //声明十六进制变量
// 直接以十进制的形式打印出来
System.out.println("a:"+a); //3
System.out.println("b:"+b); //9
System.out.println("c:"+c); //11
System.out.println("d:"+d); //17
2 十进制转其它进制
int i = 15;
System.out.println("十进制15对应的二进制为:" + Integer.toBinaryString(i)); // 1111
System.out.println("十进制15对应的八进制为:" + Integer.toOctalString(i)); // 17
System.out.println(i); // 15
System.out.println("十进制15对应的十六进制为:" + Integer.toHexString(i));
// 若需要前缀,即0b,0,0x这些,直接加上即可,
System.out.println("十进制15对应的十六进制为:" +"0x"+ Integer.toHexString(i));
// 若十六进制需要大写,则加一个toUpperCase()
System.out.println("十进制15对应的十六进制为:" +"0x"+ Integer.toHexString(i).toUpperCase());
3 其它进制转十进制
//直接打印出来就变成了十进制
int a = 0b1111; //声明二进制变量
int b = 01234; //声明八进制变量
int c = 0x1234; //声明十六进制变量
// 二进制的1111
System.out.println(a);//15
// 八进制的1234
System.out.println(b);//668
// 十六进制的1234
System.out.println(c);//4660
//还有一种转换形式,这种形式不能有前缀,否则会报错
int num_1 = 1111;
int num_2 = 1234;
int num_3 = 1234;
int jinzhi_1 = 2;
int jinzhi_2 = 8;
int jinzhi_3 = 16;
int value_1 = Integer.valueOf(num_1+"",jinzhi_1);
int value_2 = Integer.valueOf(num_2+"",jinzhi_2);
int value_3 = Integer.valueOf(num_3+"",jinzhi_3);
System.out.println(value_1);
System.out.println(value_2);
System.out.println(value_3);
上一篇: Java文件操作及输入输出流
下一篇: P4305【不重复数字】