【Java基础】二、八、十、十六进制

1.进制是什么

我们平常遇到的数字0、1、2、3...9,9再加1满10进1,得到10,这些数就表示十进制数。(decimal)
同样的满2进1就表示二进制(binary)。
满8进1就表示八进制(octal)。
满16进1就表示十六进制(hex)。

进制 表示 说明
二进制 0,1 满2进1,以0b或0B开头
八进制 0,1,2,3,4,5,6,7 满8进1,以数字0开头
十进制 0,1,2,3,4,5,6,7,8,9 满10进1
十六进制 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 满16进1,以0x或0X开头,A-F不区分大小写

感受进制各进制间数的变化

十进制 十六进制 八进制 二进制
0 0 0 0000
1 1 1 0001
2 2 2 0010
3 3 3 0011
4 4 4 0100
5 5 5 0101
6 6 6 0110
7 7 7 0111
8 8 10 1000
9 9 11 1001
10 A 12 1010
11 B 13 1011
12 C 14 1100
13 D 15 1101
14 E 16 1110
15 F 17 1111
16 10 20 10000
17 11 21 10001

2.二进制

所有的数字在计算机底层都以二进制形式存在
比方说int num = 4;,int类型占用4个字节,即4*8bit = 32位
二进制表示为
image

3.进制之间的转换

image

(1)十进制 -> 二进制

除二取余的逆
14÷2 = 7,余数0
7÷2 = 3,余数1
image

(2)二进制 -> 十进制

乘以2的幂数并相加
1110(二进制) = 0×20+1×21+1×22+1×23 = 0+2+4+8 = 14(十进制)

(3)二进制 -> 八进制

因为 23 = 8,二进制3位能表示的数最大(111)也就是7了,八进制的1位相当于二进制3位的数据量。
将二进制数从后往前 11101001 分割为3位,不足补零 011 101 001,再把每3位换成10进制。
image

(4)二进制 -> 十六进制

因为 24 = 16,二进制4位能表示的最大(1111)也就是15(十六进制中的F),十六进制的1位相当于二进制4位的数据量。
将二进制数从后往前 11101001 分割为4位,不足补零 1110 1001,再把每4位换成10进制。
image

(5)八进制 -> 二进制

每1位八进制可用3位二进制表示
image

(6)十六进制 -> 二进制

每1位十六进制可用4位二进制表示
image

posted @ 2022-08-18 15:05  植树chen  阅读(206)  评论(0编辑  收藏  举报