计算机组成原理-02-进制与编码

计算机组成原理-02-数据的表示和运算

1. 进制概述

  1. 使用二进制的原因
    • 二进制只有两种状态,物理电路的高电平和低电平可以很好的表示0和1
    • 二进制的0和1正好可以分别代表 true 和 false
    • 二进制的运算规则特别适合逻辑门电路的计算
  • 10进制

先说 我们最 熟悉的 10进制 , 就是 用 0~9 的数表示 , 逢 10 进 1 .

  • 16进制

如果是 16 进制 , 它就是 由 0-9,A-F组成, 与10进制的对应关系是:0-9 对应 0-9;A-F对应10-15;
字母不区分大小写。

  • 2进制 和 8进制

2进制 由 0-1组成

8进制 由 0-7组成

再看几个特别的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 写出各个进制1-20

# 一进制
1
1 1
1 1 1
1 1 1 1
.....

# 三进制
0 1 2
10 11 12
20 21 22
100 101 102
110 111 112
120 121 122
1000 .....


# 七进制
0 1 2 3 4 5 6
10 11 12 13 14 15 16
20 21 22 23 24 25 26
30 31 32 33 34 35 36

# 十进制(自己定义)
0 1 2 3 4 5 6 7 8 9 10 11 12
0 2 4 6 8 9 a c d f 20 22 24
  • 八进制
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 八进制计算下面结果

2 + 3 = 5
2 * 3 = 6
4 + 5 = 11
4 * 5 = 24

# 运算的本质就是查数
0 1 2 3 4 5 6 7
10 11 12 13 14 15 16 17
20 21 22 23 24 25 26 27

八进制计算 (进位和计算)
277 + 333 =
276 * 54 =
237 - 54 =
234 / 4 =
1
**八进制乘法表**
1*1 = 1 1*2 = 2 1*3 = 3 1*4 =4 1*5 =5 1*6 = 6 1*7 = 7
2*2 = 2 2*3 = 6 2*4 = 10 2*5 = 12 2*6 = 14 2*7 = 16
3*3 = 11 3*4 = 14 3*5 = 17 3* 6 = 22 3*7 = 25
4*4 = 20 4 * 5= 24 4*6 = 30 4*7 = 34
5*5 = 31 5*6 = 36 5*7 = 43
6*6 = 44 6*7 = 52
7*7 = 61

2. 进制转换

  • 所谓进位计数法是一种计数方法,咱们最常用的莫过于十进制了,除此之外还有八进制、十六进制等。
  • 这里不得不提几个概念术语:
    • 基数:比如说十进制、八进制和十六进制,它们的基数分别为10(09)、8(07)、16(0~15)
    • 数位:比如二进制数1010,这里就有4个数位,从高位到低位依次的数码值为1、0、1、1
    • 数码:比如八进制,那么数码,即数码值的范围为(0~7)
    • 基数和数码的关系:每个数位所用到的不同数码的个数称为基
    • 位权:每个数码所表示的数值等于该数码值乘以一个与它所在位有关的常数,这个常数称为位权。
  1. 二进制转换为八进制和十六进制

mark

  1. 十进制转换成二进制

mark

注意:

  • 不是每一个十进制小数都可以准确的用二进制表示,比如:0.3转换为二进制数,无论经过多少次乘二取整无法获得精确的结果。但任意一个二进制小数都可以用十进制小数表示!!!

3. 真值,机器数

  • 真值:我们日常见到的,有“+”、“-”号的数为真值,比如:+5,-7。真值是机器数所代表的实际值,一般为十进制数。
  • 机器数:将“符号->数字化”的数。一般为二进制数,比如带符号位的4位二进制数0110,最高位0就是符号位,这个数的真值就是+6。通常0代表“+”号,1代表-号。

4. BCD 码

  • 简单来说:就是用4位二进制数来表示1位十进制数(0—9),是一种用二进制编码来代替十进制编码的方式。

  • BCD码可分为两类:有权码和无权码

  • 这种编码方法使得二进制数和十进制数之间的转换十分的快速,但4位二进制数字可以转换出16中代码的组合,因此会有6种冗余的状态。

mark

4.1 8421码

  • 其中最常用的BCD码就是8421码
  • 当两个8421码进行计算时,如果结果小于等于9,则不作任何操作
  • 如果计算结果大于9则需要进行+6的修正操作(10-18(9+9)需要进行修正,1010-10010范围)需要进行修正操作,并向高位进位

mark

5. ASCII 码

ASCII码大致由三部分组成:

  1. ASCII 打印字符:数字 32–126 分配给了能在键盘上找到的字符,当您查看或打印文档时就会出现。注:十进制32代表空格 ,十进制数字 127 代表 DELETE 命令。下面是ASCII码和相应数字的对照表
ASCII 码 字符 ASCII 码 字符 ASCII 码 字符 ASCII 码 字符
十进位 十六进位 十进位 十六进位 十进位 十六进位 十进位 十六进位
032 20 056 38 8 080 50 P 104 68 h
033 21 ! 057 39 9 081 51 Q 105 69 i
034 22 058 3A : 082 52 R 106 6A j
035 23 # 059 3B ; 083 53 S 107 6B k
036 24 $ 060 3C < 084 54 T 108 6C l
037 25 % 061 3D = 085 55 U 109 6D m
038 26 & 062 3E > 086 56 V 110 6E n
039 27 063 3F ? 087 57 W 111 6F o
040 28 ( 064 40 @ 088 58 X 112 70 p
041 29 ) 065 41 A 089 59 Y 113 71 q
042 2A * 066 42 B 090 5A Z 114 72 r
043 2B + 067 43 C 091 5B [ 115 73 s
044 2C , 068 44 D 092 5C \ 116 74 t
045 2D - 069 45 E 093 5D ] 117 75 u
046 2E . 070 46 F 094 5E ^ 118 76 v
047 2F / 071 47 G 095 5F _ 119 77 w
048 30 0 072 48 H 096 60 ` 120 78 x
049 31 1 073 49 I 097 61 a 121 79 y
050 32 2 074 4A J 098 62 b 122 7A z
051 33 3 075 4B K 099 63 c 123 7B {
052 34 4 076 4C L 100 64 d 124 7C |
053 35 5 077 4D M 101 65 e 125 7D }
054 36 6 078 4E N 102 66 f 126 7E ~
055 37 7 079 4F O 103 67 g 127 7F DEL
  1. ASCII 非打印控制字符:ASCII 表上的数字 0–31 分配给了控制字符,用于控制像打印机等一些外围设备。例如,12 代表换页/新页功能。此命令指示打印机跳到下一页的开头。

mark

  1. 扩展 ASCII 打印字符:扩展的 ASCII 字符满足了对更多字符的需求。扩展的 ASCII 包含 ASCII 中已有的 128 个字符(数字 0–32 显示在下图中),又增加了 128 个字符,总共是 256 个。即使有了这些更多的字符,许多语言还是包含无法压缩到 256 个字符中的符号。因此,出现了一些 ASCII 的变体来囊括地区性字符和符号.

mark

注意:

  • 0-9的ASCII码值位48(0110000)-57(0111001)
  • 即去掉高3位,只保留四位的话,正好是二进制的0-9
  • 大写字母和小写字母转换成二进制也是同样的道理

6. 汉字编码

  • 分类:计算机中汉字的表示也是用二进制编码,同样是人为编码的。根据应用目的的不同,汉字编码分为外码、交换码、机内码和字形码。
  1. 外码(输入码)
  • 外码也叫输入码,是用来将汉字输入到计算机中的一组键盘符号。常用的输入码有拼音码、五笔字型码、自然码、表形码、认知码、区位码和电报码等
  1. 交换码(国标码)
  • 计算机内部处理的信息,都是用二进制代码表示的,汉字也不例外。
  • 而二进制代码使用起来是不方便的,于是需要采用信息交换码。中国标准总局1981年制定了中华人民共和国国家标准GB2312–80《信息交换用汉字编码字符集–基本集》,即国标码。
  • 区位码是国标码的另一种表现形式,把国标GB2312–80中的汉字、图形符号组成一个94×94的方阵,分为94个“区”,每区包含94个“位”,其中“区”的序号由01至94,“位”的序号也是从01至94。
  • 94个区中位置总数=94×94=8836个,其中7445个汉字和图形字符中的每一个占一个位置后,还剩下1391个空位,这1391个位置空下来保留备用。
  1. 机内码
  • 根据国标码的规定,每一个汉字都有了确定的二进制代码,在微机内部汉字代码都用机内码,在磁盘上记录汉字代码也使用机内码。
  1. 字形码
  • 字形码是汉字的输出码,输出汉字时都采用图形方式,无论汉字的笔画多少,每个汉字都可以写在同样大小的方块中。通常用16×16点阵来显示汉字。
  • 其实也就是0101的网格 (类似于Banner)

转换关系

  • 国际码 = (区位码)+ 2020H
    • 20H = 32 :为了传输的时候避开前32个控制字符
  • 汉字内码 = (国际码)+ 8080H
    • 80H = 128: 为了与英文的ASCII码兼容
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信