什么是进制?进制转换(二进制、八进制、十进制、十六进制)超详细!!!

进制介绍

进制也就是进位计数制,是人为定义的带进位的计数方法。

对于任何一种进制X进制,就表示每一位上的数运算时都是逢X进一位。

二进制由数字0~1组成,是逢二进一,如1010101110
十进制由数字0~9组成,是逢十进一,如125869
十六进制由数字0~F组成,是逢十六进一,如23BCD
以此类推,x进制由0~(x-1)组成,逢x进位。

进制转换

进制 基数
二进制B 2
八进制OQ 8
十进制D 10
十六进制H 16
总结
  1. R进制-->十进制:展开R的位权求和
  2. 十进制转R进制:按R的位权凑数
  3. 从中间向两边划分
    1. 二进制-->八进制
    2. 二进制-->十六进制
    3. 十六进制-->二进制
    4. 八进制-->二进制

R进制-->十进制(任何进制R转十进制)

  1. R进制数,n是各个位数
  2. 展开位权求和,公式:nmaxRmax+...+n2R2+n1R1+nR0+\(\frac{n}{R}+\frac{n}{R^2}+\frac{n}{R^3}\)

二进制转十进制

示例1:(101011)2转十进制
  1. 首先列出位权: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
    1. 整数部分:25=32,24=16,23=8,22=4,21=2,20=1
    2. 小数部分:1/2=0.5,1/4=0.25,1/8=0.125,1/16=0.0625
  2. 按位权展开求和:101011.1012,将位权数位上为1的位权数相加:32+8+2+1+0.5+0.125=(43.625)10

八进制转十进制

  1. 首先列出位权:4096 512 64 8 1,0.125 0.001953125
  2. 127.58=(87.625)10
  3. 1×64+2×8+7×1+5×0.125=64+16+7+0.625=(87.625)10

十六进制转十进制

  1. 首先列出位权:4096 256 16 1,0.0625
  2. 十六进制数中A表示10B表示11C表示12D表示13E表示14F表示15.
  3. (2AB.2)16=(673.125)10
  4. 按位权展开求和:2×256+10×16+11×1+2×0.0625=512+160+11+0.125=(673.125)10

十进制转R进制

  1. 整数部分:n/R取余,自下而上写数
  2. 小数部分:n×R取整,自上面下写数

十进制转二进制

方法一:十进制转二进制

  1. 整数部分:n/2(n/R)取余,直至被除数结果为0。自下而上写数
  2. 小数部分: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转换为二进制数

img

示例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

方法二(凑数法):十进制转二进制

  1. 首先要记住前面的数是后面数的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
  2. 操作方法:
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

十进制转八进制

  1. 整数部分:n/8取余,自下而上写数
  2. 小数部分:n×8取整,自上而下写数
  3. 示例:(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

二进制&十六进制

二进制-->十六进制

  1. 从小数点中间向两边,四位换一位(8 4 2 1)。小数点左边位数不够左边补0,小数点右边不够右边补0)
  2. (11011100101.0001111111)2求十六进制
  3. 四位换一位:(110 1110 0101.0001 1111 11)2
  4. 补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

img

十六进制-->二进制

  1. 从中间向两边,一位换四位(8 4 2 1)
  2. (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

二进制&八进制

二进制-->八进制

  1. 从中间向两边,三位换一位[4 2 1],小数点左边位数不够左边补0,小数点右边不够右边补0
  2. (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
posted @ 2020-09-06 09:51  MrFlySand-飞沙  阅读(1395)  评论(0编辑  收藏  举报