第二章:计算机系统组成
一、信息表示及存储
数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之后,就 成为信息;而信息需要经过数字化转变成数据才能存储和传输。
数据信息分为数值型和非数值型。
计算机能够区分不同的信息,是因为它们采用了不同的编码规则。
1.数制
数制(也称计数制)是指用一组固定的符号和统一的规则来计数的方法。十进制(十进位计数制):生活中常用
二进制:计算机中使用
除此:还有八进制,十六进制
- 四个概念
数码:数制中表示基本数值大小的不同数字符号 基数:数制中使用数码的个数
位权:数制中每个位置的价值
标识(后缀):为了区分不同的进制,在数字后面加上相应的字母或者括号外加上数字下标。比如(66)10 和 66D 都表示十进制数:66
进位制 | 数码 | 基数 | 位权 | 标识 |
二进制 | 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 |
规则: 进位规则,多少进制就满多少进 1
借位规则,多少进制(向高位)借一位就当多少
十进制下: | 8+2=10 | 9+2=11 | 10-3=7 |
八进制下: 二进制下: | 6+2=10 1+1=10 | 6+3=11 | 10-2=6 10-1=1 |
十六进制下: 8+2=A 8+8=10 11-2=F
练习 1:判断 102B 7Q ABCDF 是否正确练习 2:6+2=10 判断几进制?
- 进制转换
- 十进制àR 进制
整数:除以R 反向取余
小数:乘以R 正向取整(取整变 0) 例:20.625D=10100.101B
66.5D=102.4Q
30.5D=1E.8H
练习: 29.125D= B
R 进制à十进制
乘权求和法:每一位的值乘以对应的价值(位权) 标位权时注意两点:
①从个位开始标,小数和整数分开
②位权是 0 指数开始例:10110.011B=22.375D
16.6Q=14.75D
8A.4H=138.25D
练习: 1010.101B=A.5D
- 8421 拼凑法:二进制ßà十进制
2n | 210 | 29 | 28 | 27 | 26 | 25 | 24 | 23 | 22 | 21 | 20 |
1024 | 512 | 256 | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
例:25D=11001B 10110B=22D
练习: 1011B=11D
35D=100011B
- 二进制à八进制/十六进制分组转换法:
二进制à八进制:3 位转成 1 位二进制à十六进制:4 位转成 1 位
注意两点:
①以小数点为界,整数和小数分开
②整数位数不够在前面添 0,小数位数不够在后面添 0
例 :10101.1B=25.4Q 110101.1101B=35.DH
练习:110001.11B=61.6Q
- 八进制/十六进制à二进制
还组转换法
八进制à二进制:1 位还成 3 位十六进制à二进制:1 位还成 4 位
例 :16.32Q=1110.01101B F.3DH=1111.00111101B
练习:ABC.DH=101010111100.1101B
- 八进制ßà十六进制以二进制为桥
八进制(十六进制)à二进制à十六进制(八进制) 例:56.3Q=2E.6H
练习: 3D.2H=75.1Q
小数点移位:
对于R 进制,小数点左移 n 位,数变为原来的R-n 倍对于R 进制,小数点右移 n 位,数变为原来的Rn 倍
例:对于二进制数 110.11011 小数点右移 2 位后得到的新数是原来的(4)倍。
练习:一个八进制数,小数点左移 2 位后得到的新数是原来的(1/64)倍。
- 二进制的算术逻辑运算
算术运算:加减乘除
加 :0+0=0,0+1=1,1+0=1,1+1=10 减:0-0=0,1-0=1,1-1=0,10-1=1
乘 :0*0=0,0*1=0,1*0=0,1*1=1 除:0/1=0,1/1=1
例:设有二进制数 A(11001),B(101),分别求 A+B,A-B,A*B,A/B(除法可用十进制
1744/16 引入)。A+B=11110 A-B=10100
A*B=1111101 A/B=101
逻辑运算:与,或,非,异或
与(∧):0∧0=0,0∧1=0,1∧0=0,1∧1=1
见 0 为 0,全 1 为 1
或(∨):0∨0=0,0∨1=1,1∨0=1,1∨1=1
见 1 为 1,全 0 为 0
非(!):!1=0,!0=1
0 变 1,1 变 0
异或(○+ ):0○+ 0=0,0○+ 1=1,1○+ 0=1,1○+ 1=0
相同为 0,不同为 1
例:设有二进制数A(1010),B(1101),分别求 A∧B,A∨B,!A,A○+ B。 A∧B=1000
A∨B=1111
!A=0101 A○+ B=0111
2.计算机中信息的表示
(1)信息的单位
位(bit):计算机中最小的数据单位是二进制的一个数位,简称位(比特),一般用 b 表示。字节(Byte):字节是计算机中存储信息的基本单位。
字:CPU 一次性传输,运算或处理的二进制数据
字长:CPU 一次性传输,运算或处理的二进制数的位数比如前面所说的 8 位机,16 位机
注意:
①最小单位—位(bit 或b)
②基本单位—字节(Byte 或B)
练习:32 位机指最大能够处理 32 位十进制的计算机。(×) 单位换算
规定将 8 位二进制称为一个字节,1B=8b 一个字节=8 位二进制
一字节=8 位
1KB=1024B=210B
1MB=1024KB=220B
1GB=1024MB=230B
1TB=1024GB=240B
练习: 2MB=221B
232B=4GB
(1)数值表示
原反补
计算机中的信息都是由二进制组成。无符号数(0,1,2,3,„„)
有符号数(-3,-2,-1,0,1,2,3,„„)
在外界我们可以用+表示正数,-表示负数。但是在计算机内部二进制 0 和 1 怎么表示正负呢?+和-是两种状态,0 和 1 也是两种状态。所以在计算机中如果一个数是有符号数,则把这个数的最高位当作符号位,符号位为 0 表示该数为正数,符号位为 1 表示该数为负数。
(0 正 1 负)
例:用 8 位表示一个数。
10001101 负数
00001101 正数
在计算机中采用原码,反码,补码的形式对数值进行统一。
原码:通常把最高位当作符号位,其余个数作为数值,并规定 0 表示正数,1 表示负数反码:正数的反码与原码相同,负数的反码是原码基础上符号位不变,其余位取反
补码:正数的补码与原码相同,负数的补码是反码基础上加 1。
例:分为求出+25 和-25 的八位原码,反码和补码。(一般情况下是用 8 位来表示,如果题目中没有说是多少位,默认按 8 位来就可以了。)
①不考虑正负号,将 25 转换成二进制
25D=11001B
② +25 | -25 |
原码:00011001 | 10011001 |
反码:00011001 | 11100110 |
补码:00011001 | 11100111 |
练习:分为求出+16 和-16 的原码,反码和补码。
①不考虑正负号,将 16 转换成二进制
16D=10000B
② +16 | -16 |
原码:00010000 | 10010000 |
反码:00010000 | 11101111 |
补码:00010000 | 11110000 |
n 位二进制表示数(十进制)的范围
n 位二进制 | 无符号数的范围:0~2n-1 |
有符号数的范围:-2n-1~2n-1-1 | |
状态数(数的个数):2n |
常用的 8 位和 16 位
27=128 28=256
215=32768 216=65536
练习 1:
8 位二进制能表示的有符号数的范围是( ),无符号数的范围是( )
练习 2:
①8 位二进制能够表示的最大的数是( )
A.128 B.255 C.127 D.256
②8 位二进制能够表示的数有( )
A.128 B.255 C.10 D.256
练习 3:
16 位二进制能够表示的数值的个数是(65536)个。
机器数的表示
在计算机中,处理的数值可能带有小数。根据小数点的位置是否固定,将数值分为定点 数和浮点数。
定点整数:101 定点小数:0.111
浮点数:
N=±M*R±E
(比如十进制情况下:0.125*105)
M 称为数N 的尾数,决定了数的精度。
E 称为数N 的阶码,决定了数的范围。
练习:
①浮点数中重要的两个部分分别是(尾数)和(阶码)。
②浮点数中尾数决定了(精度),阶码决定了(范围)。
(3)信息编码
BCD 码
计算机中使用的是二进制,而人们习惯使用的是十进制数。因此,输入时要将十进制数 转成对应二进制数,而输出时,要将二进制数转成对应十进制数。
BCD 码有 8421BCD 码,2421BCD 码,5211 码,余 3 码等
最常用的BCD 码为 8421BCD 码,用 4 位二进制表示 1 位十进制。
十进制 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
二进制 | 1001 | 1000 | 0111 | 0110 | 0101 | 0100 | 0011 | 0010 | 0001 | 0000 |
字符编码
ASCII:美国信息交换标准代码(西方) 标准 ASCII:
①1Byte,最高位为 0,128 个字符(0-127)
②标准ASCII 只用了低七位,最高位并未使用,所以: 表示,组成,构成—7 位
占用—8 位
③并不是所以ASCII 字符都可以显示(0-31 和 127)
④ASCII 值比较:空格<数字<大写字母<小写字母
⑤对应大小字之间相差在 32D
练习:已知 h 的ASCII 码为二进制的 1101000,求F 的十进制ASCII 码为( )。扩展 ASCII
扩展ASCII:1Byte,最高位为 1,128 个字符(128-255)
汉字编码
GB2312-80(也称为 GB2312)
区位码
最小区位码为:0101D
描述了汉字在区位表中的位置,由 4 位十进制组成,前两位叫区码,后两位叫位码。国标码
①国标码=区位码+2020H
②规定一个汉字占两个字节,每个字节最高位为 0
②收集 6763 个汉字
一级汉字(常用汉字):3755 个,按拼音字母排序二级汉字(非常用汉字):3008 个,按部首排序
机内码:也称内码
①机内码=国标码+8080H
②最小机内码为A1A1H
③为了与西文字符进行区别,所有汉字机内码在国标码的基础上,把两个字节每个字节 的最高位为成 1,就得到了机内码
④机内码是唯一的
注意:机内码两个字节,每个字节最高位为 1
练习:已知某汉字的区位码为 3642,求其机内码。
注意:区位码从十进制转十六制时区码和位码分开转换
36D=24H 42D=2AH
①3642D= 242AH
②国标码=区位码+2020H
国标码=242AH+2020H=444AH
③机内码=国标码+8080H
机内码=444A+8080H=C4CAH
汉字编码除了 GB2312 之外,还有GBK,BIG5,GB18030,Unicode(UTF-8) 注意:汉字不能用ASCII 编码,可以用Unicode 编码
汉字输入码(外码)外码不唯一音码
形 码 音形码流水码
汉字字型码(又称输出码,也称汉字字模) 矢量字模:不易失真
点阵字模:易失真
字库中存放的是汉字字型码
点阵字模中一个点占二进制的一位,所以 n*n 的点阵字模占(n*n/8)个字节。比如:16*16 的点阵字模占 32 字节
练习 1:100 个 16*16 的点阵字模占(3200)个字节
练习2:如果按7*9 点阵字模占8 个字节计算,则用7*9 的全部英文字母构成的字库占用(416)个字节。
计算机内部有 6 个字节分别为:A5H,C5H,54H,78H,D9H,E3H,其中有()个汉字,()个西文。