java基础之进制之间的转换
进制的介绍
对于整数,有四种表示方式
- 二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头。
- 十进制:0-9 ,满 10 进 1。
- 八进制:0-7 ,满 8 进 1. 以数字 0 开头表示。
- 十六进制:0-9 及 A(10)-F(15),满 16 进 1. 以 0x 或 0X 开头表示。此处的 A-F 不区分大小写。
进制演示
public static void hexadecimalDemo(){
//n1 二进制(以 0b 或 0B 开头)
int n1 = 0b1010;
//n2 10 进制
int n2 = 1010;
//n3 8 进制 ,以数字 0 开头表示。
int n3 = 01010;
//n4 16 进制,以 0x 或 0X 开头表示。此处的 A-F 不区分大小写。
int n4 = 0X10101;
System.out.println("n1=" + n1);
System.out.println("n2=" + n2);
System.out.println("n3=" + n3);
System.out.println("n4=" + n4);
System.out.println(0x23A);
System.out.println("*************进制图示****************");
System.out.println("十进制\t十六进制\t八进制\t二进制");
System.out.println("0\t\t\t\t0\t\t\t\t0\t\t\t\t0");
System.out.println("1\t\t\t\t1\t\t\t\t1\t\t\t\t1");
System.out.println("2\t\t\t\t2\t\t\t\t2\t\t\t\t10");
System.out.println("3\t\t\t\t3\t\t\t\t3\t\t\t\t11");
System.out.println("4\t\t\t\t4\t\t\t\t4\t\t\t\t100");
System.out.println("5\t\t\t\t5\t\t\t\t5\t\t\t\t101");
System.out.println("6\t\t\t\t6\t\t\t\t6\t\t\t\t110");
System.out.println("7\t\t\t\t8\t\t\t\t7\t\t\t\t111");
System.out.println("8\t\t\t\t8\t\t\t\t10\t\t\t1000");
System.out.println("9\t\t\t\t9\t\t\t\t11\t\t\t1001");
System.out.println("10\t\t\tA\t\t\t\t12\t\t\t1010");
System.out.println("11\t\t\tB\t\t\t\t13\t\t\t1011");
System.out.println("12\t\t\tC\t\t\t\t14\t\t\t1100");
System.out.println("13\t\t\tD\t\t\t\t15\t\t\t1101");
System.out.println("14\t\t\tE\t\t\t\t16\t\t\t1110");
System.out.println("15\t\t\tF\t\t\t\t17\t\t\t1111");
System.out.println("16\t\t\t10\t\t\t20\t\t\t10000");
System.out.println("17\t\t\t11\t\t\t21\t\t\t10001");
}
进制之间的转换
进制转换第一组
- 二进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以2的(位数-1)次方。然后求和。
案例:请将0b1011转成十进制的数
//TODO 0b1011 =1*2的(1-1)次方 + 1*2的(2-1)次方 + 0*2的(3-1)次方 + 1*2的(4-1)次方 = 1 + 2 + 0 + 8 = 11
System.out.println(0b1011);//11
- 八进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以8的(位数-1)次方。然后求和。
案例:请将0234转成十进制的数
//TODO 0234 =4*8^0 + 3*8^1 + 2*8^2 = 4 + 24 + 128 = 156
System.out.println(0234);//156
- 十六进制转十进制
规则:从最低位(右边)开始,将每个位上的数提取出来,乘以 16 的(位数-1)次方,然后求和。
案例:请将0x23A转成十进制的数
//TODO 0x23A =10*16^0 + 3*16^1 + 2*16^2 = 10 + 48 + 512 = 570
System.out.println(0x23A);//156
进制转换第二组
- 十进制转二进制
规则:将该数不断除以 2,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的二进制。
案例:案例:请将 34 转成二进制
/**
* 2|_34__ 0
* 2|_17__ 1
* 2|_8__ 0
* 2|_4__ 0
* 2|_2__ 0
* 1
*
* TODO 组装在一起就是:ob + 100010 = 0b100010
*/
- 十进制转八进制
规则:将该数不断除以 8,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的八进制。
案例:请将 131 转成八进制
/**
* 8|_131__ 3
* 8|_16__ 0
* 2
*
* TODO 组装在一起就是:0203
*
*/
- 十进制转十六进制
规则:将该数不断除以 16,直到商为 0 为止,然后将每步得到的余数倒过来,就是对应的十六进制。
案例:请将 237 转成十六进制
/**
* 16|_237__ 13
* 14
*
* TODO 组装在一起就是:14在十六进制中对应的E,13在十六进制中对应的D,所以结果是0xED
*
*/
进制转换第三组
- 二进制转八进制
规则:从低位开始,将二进制数每三位一组,转成对应的八进制数,然后倒过来前面加0即可。
案例:请将 ob11010101 转成八进制
/**
* ob11010101按三位拆分成组
* : 101 = 5
* : 010 = 2
* : ob11 = 3
*
* TODO 组装起来就是:0325
*
*/
- 二进制转十六进制
规则:从低位开始,将二进制数每四位一组,转成对应的十六进制数,然后倒过来前面加0x即可。
案例:请将 ob11010101 转成十六进制
/**
* 0101 ==5
* ob1101 == D
*
* TODO 组装起来就是:0xD5
*/
进制转换第四组
- 八进制转二进制
规则:将八进制数每 1 位,转成对应的一个 3 位的二进制数即可。
案例:请将 0237 转成二进制
/**
* 02 == 010
* 3 == 011
* 7 == 111
*
* TODO 组装起来就是:0b 010 011 111
*
*/
- 十六进制转换成二进制
规则:将十六进制数每 1 位,转成对应的 4 位的一个二进制数即可。
案例:请将 0x23B 转成二进制
/**
* 0x2 == 0010
* 3 == 0011
* B == 1011
*
* TODO 组装起来就是:0b0010 0011 1011
*/
本文详细介绍了Java中的进制转换,包括二进制、十进制、八进制和十六进制之间的转换规则,并提供了示例代码来展示如何进行这些转换。
1029

被折叠的 条评论
为什么被折叠?



