欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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