1. 进制转换-软考设计师学习笔记

文摘   教育   2024-03-20 00:26   云南  


【目录】


  • 1. 进制的概念

  • 2. 进制的表示

  • 3. 其它进制转十进制:乘权法

  • 4. 十进制转其它进制:短除法

  • 5. 转二进制

    • 5.1 十六进制转二进制:四分法

    • 5.2 八进制转二进制:三分法

  • 6. 二进制转其它进制

    • 6.1 二进制转十六进制:四分法

    • 6.2 二进制转八进制:三分法

    • 6.3 二进制转10进制:乘权法

  • 7. 凑权法:十进制转二进制

  • 8. 总结


【正文】

  • 软件设计师考试学习笔记
  • 第一章 计算机组成与体系结构
  • 考试分值约6分。

1. 进制的概念

本节的目标任务是熟练掌握各种进制之间的转换。

进制是一种表示数字的方式,常见的进制有十进制、二进制、八进制和十六进制。

每种进制都有自己的数码、基数和位权。

1.

【数码】

数码是指在某一进制下可以使用的数字符号。

  • 在二进制中,数码是0和1。
  • 在八进制中,数码是0到7。
  • 在十进制中,数码是0到9。
  • 在十六进制中,数码是0到9以及A到F。

十进制数10在十六进制中表示为A。
十进制数11在十六进制中表示为B。
十进制数12在十六进制中表示为C。
十进制数13在十六进制中表示为D。
十进制数14在十六进制中表示为E。
十进制数15在十六进制中表示为F。

  • 10-A
  • 11-B
  • 12-C
  • 13-D
  • 14-E
  • 15-F

【基数】

基数是指每一位上所能表示的数码的个数。

  • 在二进制中,基数为2。
  • 在八进制中,基数为8。
  • 在十进制中,基数为10。
  • 在十六进制中,基数为16。

【位权】

位权是指每一位上的数码所代表的数值大小。

  • 在二进制中,位权是2的幂次方。
  • 在八进制中,位权是8的幂次方。
  • 在十进制中,位权是10的幂次方。
  • 在十六进制中,位权是16的幂次方。

小数点前位权是从0开始的,小数点后位权从-1开始。

【示例】

在十进制中,数字1234.56表示:
小数点前位权是从0开始。

  • 1个千位上的1乘以1000,即位权为10的3次方。
  • 2个百位上的2乘以100,即位权为10的2次方。
  • 3个十位上的3乘以10,即位权为10的1次方。
  • 4个个位上的4乘以1,即位权为10的0次方。

小数点后位权从-1开始。

  • 5乘以0.1,即位权为10的-1次方。
  • 6乘以0.01,即位权为10的-2次方。

1234.56 = 1*10^3 + 2*10^2 + 3*10^1 + 4*10^0 + 5*10^-1 + 6*10^-2

2. 进制的表示

二进制(Binary)用字母B表示。

八进制(Octal)用字母O表示。

十进制(Decimal)用字母D表示,通常没有字母的数字则默认为十进制。

十六进制(Hexadecimal)用字母H表示。

【示例】

1234表示十进制。
1234H表示十六进制。

3. 其它进制转十进制:乘权法

乘权法:把每一位数和当前位的权值相乘后的结果累加起来。

【目标任务】

将111B转换成十进制。
将111O转换成十进制。
将111H转换成十进制。

111B = 1*2^2 + 1*2^1 + 1*2^0 = 4 + 2 +1=7
111O = 1*8^2 + 1*8^1 + 1*8^0 = 64 + 8 +1=73
111H= 1*16^2 + 1*16^1 + 1*16^0 =  256 + 16 + 1 = 273

【思路解析】

以二进制转10进制为例:

  1. 先把要转换的数拆开:1 1 1
  2. 二进制位权为2:1*2 + 1*2 +1*2
  3. 根据每个数的顺序确定幂次方: 1*2^2 + 1*2^1 +1*2^0

【课堂练习】

将10100.01B转换成十进制。

  1. 先把要转换的数拆开:1 0 1 0 0 0 1
  2. 二进制位权为2:1*2 0*2 1*2 0*2 0*2 0*2 1*2
  3. 根据顺序确定幂次方: 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 0*2^0+ 0*2^-1 + 1*2^-2

4. 十进制转其它进制:短除法

短除法:循环除基数直到商为0,从下往上取余数。

  • 确定目标进制:确定要将十进制数转换为哪种进制,如二进制、八进制或十六进制等。

  • 进行除法运算:将十进制数不断除以目标进制的基数,直到商为0为止。

  • 反向排列:将得到的余数按照从下往上的顺序进行排列。

  • 如果目标进制是十六进制,需要将余数10、11、12、13、14、15分别表示为A、B、C、D、E、F。

【10转2除2】

要转换的数是27。
目标进制为二进制,则除以2。

  • 27 ÷ 2 = 13 余 1
  • 13 ÷ 2 = 6 余 1
  • 6 ÷ 2 = 3 余 0
  • 3 ÷ 2 = 1 余 1
  • 1 ÷ 2 = 0 余 1
    余数按照从下到上的顺序排列,即可得到二进制数11011。

【10转8除8】

目标进制为八进制,则除以8。

  • 27 ÷ 8 = 3 余 3
  • 3 ÷ 8 = 0 余 3
    余数按照从下到上的顺序排列得到八进制数:33

【10转16除以16】

目标进制为十六进制,则除以16。

  • 27 ÷ 16 = 1 余 11
  • 1 ÷ 16 = 0 余 1
    余数按照从下到上的顺序排列得到十六进制数:1B

5. 转二进制

5.1 十六进制转二进制:四分法

2^4=16

首先将十六进制数的每一位转换为对应的四位二进制数。

将每一位的二进制数连接起来,即可得到转换后的二进制数。

  • 0 对应 0000
  • 1 对应 0001
  • 2 对应 0010
  • 3 对应 0011
  • 4 对应 0100
  • 5 对应 0101
  • 6 对应 0110
  • 7 对应 0111
  • 8 对应 1000
  • 9 对应 1001
  • A 对应 1010
  • B 对应 1011
  • C 对应 1100
  • D 对应 1101
  • E 对应 1110
  • F 对应 1111

【目标任务】

将十六进制数 3A 转换为二进制数。

【思路解析】

首先,将十六进制数的每一位转换为对应的四位二进制数:
3 -> 0011
A -> 1010
然后,将每一位的二进制数连接起来:
0011 1010
十六进制数 3A 转换为二进制数为 00111010

【课堂练习】

将90H转换为二进制。

【思路解析】

0转换为4位二进制:0000
9转换为4位二进制:1001
90H=10010000B

5.2 八进制转二进制:三分法

2^3=8

首先将八进制数的每一位转换为对应的三位二进制数。

将每一位的三位二进制数拼接起来,得到最终的二进制数。

  • 0 对应 000
  • 1 对应 001
  • 2 对应 010
  • 3 对应 011
  • 4 对应 100
  • 5 对应 101
  • 6 对应 110
  • 7 对应 111

【目标任务】

将八进制数37转换为二进制数。

【思路解析】

首先,将八进制的每一位转换为对应的三位二进制数:
7 -> 111
3 -> 011
然后,将每一位的二进制数连接起来:
011 111 八进制数 37 转换为二进制数为 011111

3转换为3位二进制:011
7转换为3位二进制:111
37O=011111

6. 二进制转其它进制

6.1 二进制转十六进制:四分法

  • 将二进制数从右向左每4位分组,不足4位的在左边补0。

  • 将每个4位二进制数转换为对应的十六进制数。

  • 将得到的十六进制数按照从左到右的顺序排列,即为最终的十六进制表示。

【目标任务】

将二进制数110110101转换为十六进制数。

【思路解析】

4个数为一组,分组得到:11、0110、1010
11 = 1*2^1 + 1*2^0 = 3
0110 = 1*2^2 + 1*2^1 =6
1010 = 1*2^3 + 1*2^1 = 10 = A
将每个4位的二进制数转换为对应的十六进制数,得到3、6、A。

将得到的十六进制数按照从左到右的顺序排列,即得到最终结果为36A。

6.2 二进制转八进制:三分法

  • 将二进制数从右向左每3位分组,不足3位的在左边补0。

  • 将每个3位二进制数转换为对应的八进制数。

  • 将得到的八进制数按照从左到右的顺序排列,即为最终的八进制表示。

【目标任务】

将二进制数110101转换为八进制数。

【思路解析】

3个数为一组,分组得到:110、101
110 = 1*2^2 + 1*2^1 = 6
101 = 1*2^2 + 1*2^0 =5

将每个3位的二进制数转换为对应的八进制数,得到6、5。

将得到的八进制数按照从左到右的顺序排列,即得到最终结果为65。

6.3 二进制转10进制:乘权法

111B = 1*2^2 + 1*2^1 + 1*2^0 = 4 + 2 +1=7

7. 凑权法:十进制转二进制

2

凑权法的前提是熟悉2的幂次方的值。

【目标任务】

用凑权法将7和94转换为2进制。

7 = 4+2+1=2^2+2^1+2^0=111

94 = 64+16+8+4+2=2^6+2^4+2^3+2^2+2^1=1011110

以94转二进制为例:

2的幂次方中最接近94的是64,即2^6

94-64=30。

在上述表中凑够一个30,16+8+4+2即2^4 2^3 2^2 2^1

【课堂练习】

用凑权法将192转换为二进制。

【解析】

2的幂次方中最接近192的是128,即2^7
192-128=64,64即2^6

答案为:11000000

8. 总结

  • 其它进制转10进制用乘法 ,乘权值

111B = 1*2^2 + 1*2^1 + 1*2^0 = 4 + 2 +1=7
111O = 1*8^2 + 1*8^1 + 1*8^0 = 64 + 8 +1=73
111H= 1*16^2 + 1*16^1 + 1*16^0 =  256 + 16 + 1 = 273

  • 10进制转其它进制用除法,转几除几

27 ÷ 2 = 13 余 1
13 ÷ 2 = 6 余 1
6 ÷ 2 = 3 余 0
3 ÷ 2 = 1 余 1 1 ÷ 2 = 0 余 1
余数按照从下到上的顺序排列,即可得到二进制数11011。

  • 其它进制转2进制

16转2用4分:2^4
8转2用3分:2^3
10转2用除法

0转换为4位二进制:0000
9转换为4位二进制:1001
90H=10010000B

  • 2进制转其它进制

2转16用4分
2转8用3分
2转10用乘法

4个数为一组,分组得到:11、0110、1010
11 = 1*2^1 + 1*2^0 = 3
0110 = 1*2^2 + 1*2^1 =6
1010 = 1*2^3 + 1*2^1 = 10 = A
将每个4位的二进制数转换为对应的十六进制数,得到3、6、A。 将得到的十六进制数按照从左到右的顺序排列,即得到最终结果为36A。

3.进制转换2


安迪python学习笔记
python学习笔记,适合初学者。
 最新文章