进制的介绍与书写格式
-
为什么要学习进制?
-
计算机数据在底层运行的时候,都是以二进制形式。
-
也有一些代码计算是八进制或者十进制、十六进制,了解不同的进制,便于我们对数据的运算过程了解更加深刻。
-
-
Java中有哪几种进制?如何书写?
-
二进制:0b开头
-
八进制:0开头
-
十进制:正常写
-
十六进制:0x开头
-
计算机常用进制
四个概念:
数码
:数制中表示基本数值大小的不同数字符号
基数
:数制中使用数码的个数
位权
:数制中每个位置的价值(例:R进制 用Rn表示每个位置的价值)
标识(后缀)
:为了区分不同的进制,在数字后面加上对应的字母或者括号外加上数字下标。(例:十进制 (66)10或66D)
进位制 | 数码 | 基数(R进制:R) | 位权(R进制:Rn) | 标识 |
---|---|---|---|---|
二进制 | 0,1 | 2 | 2n | B |
八进制 | 0,1,2,3,4,5,6,7 | 8 | 8n | O或Q |
十进制 | 0,1,2,3,4,5,6,7,8,9 | 10 | 10n | D或省略 |
十六进制 | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F | 16 | 16n | H |
R进制 | 0~R-1 | R | Rn |
进制运算
规则:
进位规则(加法)
:R进制满R就向前进1
错位规则(减法)
:R进制向高位借一位就是R
例:
十进制下: | 8+2=10 | 9+2=11 | 10-3=7 |
---|---|---|---|
八进制下: | 6+2=10 | 6+3=11 | 10-2=6 |
二进制下: | 1+1=10 | 10+1=11 | 10-1 =1 |
十六进制下: | 8+2=A | 3+9=C | 11-2=F |
进制转换
十进制——>>R进制
:
整数:除以R反向取余(短除R取余,逆序取余法)(使用源数据,不断的除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。)
小数:乘以R正向取整(取整变0)(持续相乘R,正序取整法 )
R进制——>>十进制
:
乘权求和法:每一位的值乘以对应位置的位权(整数位权从个位开始标从0指数开始,小数位权从-1指数开始)
10110.011B ——>>22.375D | 1x24+0x23+1x22+1x21+0x20+0x2-1+1x2-2+1x2-3=22.375D |
---|---|
8A.4H——>>138.25D | 8x161+10x160+4x16-1=138.25D |
二进制——>>八进制/十六进制
:
分组转换法:
二进制—>八进制:3位二进制的数才能转成1位八进制的数
二进制—>十六进制:4位二进制的数才能转成1位十六进制的数
一位二进制:可表示十进制范围——>>[0B,1B]——>>[0,1]
两位二进制:可表示十进制范围——>>[00B,11B]——>>[0,3]
三位二进制:可表示十进制范围——>>[000B,111B]——>>[0,7]《《===》》八进制数的范围:[0,7]
四位二进制:可表示十进制范围——>>[0000B,1111B]——>>[0,15]《《===》》十六进制数的范围:[0,15]
注意两点:
①以小数点为界,整数和小数分开
②整数位数不够在前面添0,小数位数不够在后面添0
10101.1B——>>25.4Q | 10101.1B=010101.100B--十>>21.4D--八>>25.4Q |
---|---|
110101.1101B——>>35.DH | 110101.1101B=00110101.1101B--十>>53.13D--八>>35.DH |
八进制/十六进制——>>二进制
:
还组转换法:
八进制——>>二进制:1位还成3位
十六进制——>>二进制:1位还成4位