进制介绍
进制也就是进位计数制,是人为定义的带进位的计数方法。
对于任何一种进制X进制,就表示每一位上的数运算时都是逢X进一位。
二进制由数字0~1组成,是逢二进一,如1010101110;
十进制由数字0~9组成,是逢十进一,如125869;
十六进制由数字0~F组成,是逢十六进一,如23BCD;
以此类推,x进制由0~(x-1)组成,逢x进位。
进制转换
进制
基数
二进制B
2
八进制OQ
8
十进制D
10
十六进制H
16
总结
R进制-->十进制:展开R的位权求和
十进制转R进制:按R的位权凑数
从中间向两边划分
二进制-->八进制
二进制-->十六进制
十六进制-->二进制
八进制-->二进制
R进制-->十进制(任何进制R转十进制)
R进制数,n是各个位数
展开位权求和,公式:nmaxRmax+...+n2R2+n1R1+nR0+\(\frac{n}{R}+\frac{n}{R^2}+\frac{n}{R^3}\)
二进制转十进制
示例1:(101011)2转十进制
首先列出位权:2048 1024 512 256 128 64 32 16 8 4 2 1,0.5 0.25 0.125 0.0625 0.03125 0.0.015625
整数部分:25=32,24=16,23=8,22=4,21=2,20=1
小数部分:1/2=0.5,1/4=0.25,1/8=0.125,1/16=0.0625
按位权展开求和:101011.1012,将位权数位上为1的位权数相加:32+8+2+1+0.5+0.125=(43.625)10
八进制转十进制
首先列出位权:4096 512 64 8 1,0.125 0.001953125
127.58=(87.625)10
1×64+2×8+7×1+5×0.125=64+16+7+0.625=(87.625)10
十六进制转十进制
首先列出位权:4096 256 16 1,0.0625
十六进制数中A表示10,B表示11,C表示12,D表示13,E表示14,F表示15.
(2AB.2)16=(673.125)10
按位权展开求和:2×256+10×16+11×1+2×0.0625=512+160+11+0.125=(673.125)10
十进制转R进制
整数部分:n/R取余,自下而上写数
小数部分:n×R取整,自上面下写数
十进制转二进制
方法一:十进制转二进制
整数部分:n/2(n/R)取余,直至被除数结果为0。自下而上写数
小数部分:n×2(n×R)取整,直至结果为1。自上而下写数
示例1:(23)10转二进制?
因为是二进制,所以R=2。
23/2=11...1
11/2=5....1
5/2=2.....1
2/2=1.....0
1/2=0.....1
所以(21)10=(10101)2
示例2:将十进制数9转换为二进制数
示例3:(23.375)10转二进制?
0.375×2=0.75...0(看当前结果0.75的整数位为0)
0.75×2=1.5.....1(看当前结果1.5的整数位为1)
0.5×2=1........1(看当前结果1的整数位为1)
所以(23.375)10=(10111.011)2
方法二(凑数法):十进制转二进制
首先要记住前面的数是后面数的2倍:2048 1024 512 256 128 64 32 16 8 4 2 1,0.5 0.25 0.125 0.0625 0.03125 0.0.015625
操作方法:
23-16=7,7>=0,所以第5位是1(第5位是从右往左数)
7-8=-1,-1<0,所以第4位是0
7-4=3,3>=0,所以第3位是1
3-2=1,1>=0,所以第2位是1
1-1=0,0=0,所以第1位是1
十进制转八进制
整数部分:n/8取余,自下而上写数
小数部分:n×8取整,自上而下写数
示例:(156.015625)10 = (234.01)8
156÷8=19...4
19÷8=2.....3
2÷8=0......2
0.015625×8=0.125
0.125×8=1
十进制转十六进制
5463.0625 10 = 1557.116
5463÷16=341余7
341÷16=21余5
21÷16=1余5
1÷16=0余1
0.0625×16=1
二进制&十六进制
二进制-->十六进制
从小数点中间向两边,四位换一位(8 4 2 1)。小数点左边位数不够左边补0,小数点右边不够右边补0)
(11011100101.0001111111)2求十六进制
四位换一位:(110 1110 0101.0001 1111 11)2
补0:(0110 1110 0101.0001 1111 1100)2 = (6E5.1FC)16,计算方式如下:
整数部分:小数点左边`0110 1110 0101`,每4位为1部分(每位的位权是8、4、2、1),位数不够最左边补0
二进制:0 1 0 1
(0101)2=0×8+1×4+0×2+1×1=(5)H
二进制:1 1 1 0
(1110)2=1×8+1×4+1×2+0×1=14=(E)H
二进制:0 1 1 0
(0110)2=0×8+1×4+1×2+0×1=5=(6)H
-----------------------------------------------------
小数部分:小数点右边`0001 1111 0110`,每4位为1部分(每位的位权是8、4、2、1),位数不够最右边补0
二进制:0 0 0 1
(0001)2=0×8+0×4+0×2+1×1=1
二进制:1 1 1 1
(1111)2=1×8+1×4+1×2+1×1=15=F
二进制:1 1 0 0
(1100)2=1×8+1×4+0×2+0×1=12=C
十六进制-->二进制
从中间向两边,一位换四位(8 4 2 1)
(B3.E8)16=(11000011.11101)2
B=1×8+1×4+0×2+0×1=12=(1100)2
3=0×8+0×4+1×2+1×1=3=(0011)2
E=1×8+1×4+1×2+0×1=14=(1110)2
8=1×8+0×4+0×2+0×1=8=(1000)2
二进制&八进制
二进制-->八进制
从中间向两边,三位换一位[4 2 1],小数点左边位数不够左边补0,小数点右边不够右边补0
(10 101 110 101.101 001 10)2=(2565.514)8
0×4+1×2+0×1=2
1×4+0×2+1×1=5
1×4+1×2+0×1=6
1×4+0×2+1×1=5
1×4+0×2+1×1=5
0×4+0×2+1×1=1
0×4+1×2+0×1=4
八进制-->二进制
(从中间向两边,一换三位[4 2 1])
7132.2713 8 = 111001011010.010111001011 2
7 = 1×4+1×2+1×1 =111 2
1 = 0×4+0×2+1×1 =001 2
3 = 0×4+1×2+1×1 =011 2
2 = 0×4+1×2+0×1 =010 2
2 = 0×4+1×2+0×1 =010 2
7 = 1×4+1×2+1×1 =111 2
1 = 0×4+0×2+1×1 =001 2
3 = 0×4+1×2+1×1 =011 2
任何进制R转十进制(扩展)
公式:sum=sum×R+x
二进制转十进制
10011 2 = 19 10
设sum为十进制数,初始值是0
x
1
0
0
1
1
sum
0
1
2
4
9
19
公式:sum=sum×2+x
八进制转十进制
437 8 = 287 10
x
4
3
7
sum
0
4
35
287
公式:sum=sum×8+x
十六进制转十进制
457 16 = 10
x
4
5
7
sum
0
4
6
公式:sum=sum×16+x