一、整数的四种表示方式
- 二进制:0,1,满二进一(以0b或0B开头)
- 八进制:0-7,满八进一(以0开头)
- 十进制:0-9,满十进一
- 十六进制:0-9,A-F,满十六进一(以0x或0X开头)
int n1 = 0b1010;//2进制表示10
int n2 = 01010;//8进制表示520
int n3 = 1010;//10进制表示1010
int n4 = 0x1010;//16进制表示65793
二、进制的转换
(一)、其它进制转十进制
从最低位(右边)开始,每个位数乘以2/8/16的(位数-1)次方,求和。
- 二进制转十进制
0b11 = 1 * 2 ^ 0 + 1 * 2 ^ 1 = 3 - 八进制转十进制
0234 = 4 * 8 ^ 0 + 3 * 8 ^ 1 + 2 * 8 ^ 2 = 156 - 十六进制转十进制
0x23A = 10 * 16 ^ 0 + 3 * 16 ^ 1 + 2 * 16 ^ 2 = 570
(二)、十进制转其它进制
不断除以2/8/16,直到商为0,然后余数倒过来。
- 十进制转二进制
7 = 0b111
步骤: 7 / 2 = 3 … 1
3 / 2 = 1 … 1
1 / 2 = 0 … 1 - 十进制转八进制
131 = 0203
步骤:132 / 8 = 16 … 3
16 / 8 = 2 …0
2 / 8 = 0 … 2 - 十进制转十六进制
237 = 0xED
步骤:237 / 16 = 15 … 14(14表示D)
15 / 16 = 0 … 15(15表示E)
(三)、二进制转其8/16进制
从低位(右边)开始将二进制每3/4位一组,转成8/16进制。
- 二进制转八进制
0b 11010101 = 11(3) 010(2) 101(5) = 0325 - 二进制转十六进制
0b 11010101 = 1101(D) 0101(5) = 0xD5
(四)、8/16进制转二进制
将8/16每一位数,转成一个3/4位的二进制位。
- 八进制转二进制
0237 = 2(010) 3(011) 7(111) = 0b010 011 111 - 十六进制转二进制
0x23B = 2(0010) 3(0011) B(1011) = 0b0010 0011 1011
特别说明
本文章是个人整理的学习笔记,参考b站韩顺平老师的课程(【零基础 快速学Java】韩顺平 零基础30天学会Java)。老师讲的非常好,有兴趣的可以去看一下。