进制
1.进制的介绍
对于整数,有四种表示方式:
-
二进制:0,1,满2进1.以0b或0B开头
-
十进制:0-9,满10进1
-
八进制:0-7,满8进1
-
十六进制:0-9及A(10)-F(15),满16进1.以0x或X开头(此处的A-F不区分大小写)
eg:
int n1=0b1010;
int n2=1010;
int n3=01010;
int n4=0x10101;
2.进制的转换
-
第一组
-
二进制转十进制
规则:从最低位(右边)开始,逐次向左,将每个微商的数提取出来,乘以2的(位数减1)次方,然后求和。
-
八进制转十进制
-
十六进制转十进制
-
-
第二组
-
十进制转二进制
-
十进制转八进制
-
十进制转十六进制
-
-
第三组
-
二进制转八进制
-
二进制转十六进制
-
八进制转二进制
-
十六进制转二进制
-
3.10进制转其他进制的方法
方法(参数为n) | 返回值 | |
---|---|---|
十进制转二进制 | Integer.toBinaryString(n) | 一个二进制字符串 |
十进制转八进制 | Integer.toOctalString(n) | 一个八进制字符串 |
十进制转十六进制 | Integer.toHexString(n) | 一个十六进制字符串 |
十进制转r进制 | Integer.toString(n,3) | 一个r进制字符串 |
具体实现:
/**
* 十进制转其他进制
*/
int n=18;
System.out.println("n的二进制为:"+Integer.toBinaryString(n));
System.out.println("n的八进制为:"+Integer.toOctalString(n));
System.out.println("n的十六进制为:"+Integer.toHexString(n));
System.out.println("n的三进制为:"+Integer.toString(n,3));
4.其他进制转十进制
/**
* 其他进制转十进制
*/
int n1=0b1010;//二进制
int n2=1010;//十进制
int n3=01010;//八进制
int n4=0x10101;//十六进制
System.out.println("n1="+n1);
System.out.println("n2="+n2);
System.out.println("n4="+n3);
System.out.println("n4="+n4);
5.r进制转10进制
r进制转10进制 | 方法 |
---|---|
radix进制的字符串s转10进制 | Integer.parseInt(s,radix) |
具体实现:
/**
* r进制转十进制
*/
String s="10101";
System.out.println(Integer.parseInt(s,2));//2进制字符串转十进制
System.out.println(Integer.bitCount(21));//计算21的二进制中有多少个1
6.数字前置0的方法
/**
* 数字前值0的方法
*/
//方法1
int a=1;
System.out.printf("%04d\n",a);
//方法2
String str=String.format("%04d",a);
System.out.println(str);