92
二二二二二二二二二 1 二二二二二二二二二二二 二二二二二二二二二 二二二二二二二二二二二二 ,。 二二(111.101) 2 =1×2 2 +1 × 2 1 +1 × 2 0 + 1 × 2 -1 + 0× 2 -2 + 1 × 2 -3 = (7.625) 10 2 二二二二二二二二二二二 ⑴ 二二二二 二二二 2 二二二 二二二二二 () 二二 (215) 10 二二二二二二二

二、进位制数之间的转换 1 、二进制数转换成十进制数 根据二进制数的定义,只要将它按权展开再相加。

Embed Size (px)

DESCRIPTION

二、进位制数之间的转换 1 、二进制数转换成十进制数 根据二进制数的定义,只要将它按权展开再相加。 例如: (111.101) 2 =1 ×2 2 +1 × 2 1 +1 × 2 0 + 1 × 2 -1 + 0× 2 -2 + 1 × 2 -3 = (7.625) 10 2 、十进制数转换成二进制数 ⑴整数部分,采用除 2 取余法(或倒除法) 例如:将 (215) 10 转换成二进制数. 2 215 余数 - PowerPoint PPT Presentation

Citation preview

Page 1: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

二、进位制数之间的转换 1 、二进制数转换成十进制数 根据二进制数的定义,只要将它按权展开

再相加。 例如: (111.101)2=1×22 +1 × 21 +1 × 20 +

1 × 2-1 + 0× 2-2 + 1 × 2-3 = (7.625)10

2 、十进制数转换成二进制数 ⑴ 整数部分,采用除 2 取余法(或倒除

法) 例如:将 (215)10 转换成二进制数

Page 2: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

• 2 215 余数• 2 107 1

• 2 53 1

• 2 26 1

• 2 13 0

• 2 6 1

• 2 3 0

• 2 1 1

• 0 1

结果 (215)10 = (11010111)2

或写为: 215D = 11010111B

Page 3: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

⑵ 小数部分,采用乘 2 取整法 例如:将 (0.6875)10 转换成二进制数 0.6875 取整数部分 × 2 1.3750 1 0.3750 × 2 0.7500 0 × 2 1.5000 1 0.5000 × 2 1.0000 1 0.0000

结果 (0.6875)10 = (0.1011)2

Page 4: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

如果十进制小数不能用有限位的二进制数表示,则根据精度取几位 例如: (0.414)10 ≈ (0.01101)2 (取 5 位) 或写为: 0.414D ≈ 0.01101B (取 5 位)3 、八进制数转换成十进制数 根据八进制数的定义,只要将它按权展开再相加。 例如: (14)8= 1×81 +4 × 80= (12)

10

或写为: 14Q= 1×81 +4 × 80= 12D = 12

4 、十六进制数转换成十进制数 根据十六进制数的定义,只要将它按权展开再相加。 例如: (A4)16= 10×161 +4 × 160= (164)

10

或写为: A4H = 10×161 +4 × 160= 164D = 164

Page 5: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

5 、十进制数转换成八进制数 与十进制数转换成二进制数相似,采用除 8 取余法(整数)和乘 8 取整法(小数)。 6 、十进制数转换成十六进制数 与十进制数转换成二进制数相似,采用除 16 取余法(整数)和乘 16 取整法(小数)。 例如:将( 843.6875)10 转换为十六进制数

16 843 取余数 0.6875 取整数 16 52 B × 16 16 3 4 4.1250 0 3 6.875 B.0000 B

结果 ( 843.6875)10 = ( 34B.B)16

通常,先将十进制数转换成二进制数,再由二进制数转换成8 进或 16 进制数。

Page 6: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

7 、八进制数与二进制数之间的转换 一位八进制数相当于 3 位二进制数,所以八进制数转换成二进制数,或二进制数转换成八进制数很方便。 例如: (563)8 = (101,110,011)2

(0.764)8= (0.111,110,100)2

8 、十六进制数与二进制数之间的转换 一位十六进制数相当于 4 位二进制数,所以十六进制数与二进制数之间的转换是很方便的。 例如: (3AB)16 = (0011,1010,1011)2

(0.CD3)16 = (0.1100,1101,0011)2

Page 7: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

三、二进制编码 1 、二进制编码的十进制数( BCD 码 )

BCD 码是用 4 位二进制数码来表示一位十进制数字。通常采用 8421 码。

十进制数 8421 码 2421 码 余 3 码0 0000 0000 00111 0001 0001 0100

2 0010 0010 0101

3 0011 0011 0110

4 0100 0100 0111

5 0101 1011 1000

6 0110 1100 1001

7 0111 1101 1010

8 1000 1110 1011

9 1001 1111 1100

Page 8: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

例如: (117.574)10= (1110101.1001)2 (小数后取 4位)

= (1,0001,0111.0101,0111,0100)BCD

2 、字母与字符的编码 微机中普遍采用 ASCII 码,用 7 位二进制数来表示。

3 、汉字的编码 ⑴ 汉字的输入编码 直接用西文键盘输入汉字,通常采用以下三类: ① 数字编码 常用的是国标区位码,用数字串代表一个汉字输入, 以国家颁布的两级汉字为例。 6763 个两级汉字分为 94 个区,每个区分 94 位,例如“中”字位于第 54 区 48 位,则他的区位码是 544

8 。

Page 9: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

GB2312 分成 94 行 ×94 列,行号称为区号,列号称为位号。7 位区号在左, 7 位列号在右,共 14 位,这是汉字的区位码。将区位码的区号和位号各加 32 (即 100000 )变换成国标码。 区位码是: 0010011 0000011 (13H 03H) 其国标码则为: 0110011 0100011 (33H 23H) “ 中”的区位码是 5448 即 36H 30H ,国标码是 56H 50

H 。 ② 拼音码,输入简单,但输入重码率很高。 ③ 字形编码 通常是五笔字形编码。 现在汉字输入的研究很多,输入的方法有几十种。 ⑵ 汉字内码 汉字内码用于汉字的存储、交换、检索等操作的机内代码,一般采用两个字节表示。 例如:将汉字的国标码的区号和位号扩展成 8 位(即

Page 10: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

四、二进制数的运算(一)二进制数的算术运算1 、加减法规则: 0+0= 0 , 0+1=1 , 1+0 =1 , 1+1= 0 (进位 1 ) 0-0= 0 , 1-0 =1 , 1-1= 0 , 0-1=1 (有借位)例: 11000100 11000100 +00100101 - 00100101 11101001 100111112 、乘法 1111规则: 0×0=0 , 0 ×1=0 , 1 ×0=0 , 1 ×1=1 × 1101⑴被乘数左移法 1111 1111 ×1101 0000 = 11000011 1111 1111 11000011

Page 11: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

⑵ 部分积右移法

乘 数 被 乘 数 部分积 1101 1111 0000

① 乘数最低位为 1 ,加被乘数 1111

部分积右移 0111 1

② 乘数次低位为 0 ,不加被乘数 0011 11

部分积右移 1111

③ 乘数第 2 位为 1 ,加被乘数 10010 11

部分积右移 1001 011

④ 乘数第 1 位为 1 ,加被乘数 1111

部分积右移 11000 011

只需要 4 位加法器 1100 0011 (结果)

Page 12: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

3 、除法 例: 1001111÷110 ≈1101 余 1 0001101 110 1001111 110 111 110 111 110 1

Page 13: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

(二)二进制数的逻辑运算 1 、“与”运算 表达式: Y=A×B , Y=A B ∧ , Y=A·B

规则: 0 × 0 = 0 0 ×1 = 0 1 ×0 = 0

1 ×1 =1

2 、“或”运算 表达式: Y=A+B , Y=A B∨ 规则: 0 +0 = 0 0 +1 = 1 1 +0 = 1

1 +1 =1

3 、“非”运算 Y= A 0 = 1 1 = 0

Page 14: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

4 、“异或”运算 表达式: Y=A B⊕ 规则: 0 0 = 0 0 1 = 1⊕ ⊕ 1 1 = 0 1 0 = 1⊕ ⊕ 与、或、非是三种基本运算,其他逻辑运算都可由这三种运算组合而成。 如:异或运算

同或运算

Y=A B =⊙

BABABAY

BABABA

Page 15: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

五、带符号数表示法 计算机中带符号的二进制数有四种编码方法:原码、反码、补码和移码 1 、原码 ⑴ 机器数与真值 一个数的符号位和数值位一起表示的二进制编码称为机器数,机器数编码方法不同分为原码、反码、补码和移码;而该机器数的十进制数值称为该数的真值。 无符号二进制数的每一位都是数值位。例如: 8 位无符号二进制数 00000000 至 11111111 ,其数值范

围为 0 – 255 。 8 位有符号数的最高位表示符号, 0 表示正数, 1 表示负数,其余 7 位是数值位,其原码表示范围为 -127 - +127

例如:( 01011011)2= +91 ( 11011011)2= -91

这里( 11011011)2 称为原码机器数, -91 称为该机器数的 真值

Page 16: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

⑵ 原码 ① 若定点小数的原码形式为 x0 . x1x2…xn ,则原码定义是: x 1 >x ≥ 0

[x] 原 = 1-x = 1+ x 0 ≥ x > -1

式中 [x] 原是机器数,用带符号二进制数编码表示; x 是带 +或 - 符号的一般二进制数表示,它的十进制数值称为真值。 例如: x = +0.1001B ,则 [x] 原 = 0.1001B , x 的真值 = +0.562

5

x = - 0.1001B ,则 [x] 原 = 1.1001B , x 的真值 = - 0.5625

② 若定点整数的原码形式为 x0 x1x2…xn ,则原码定义是: x 2n >x ≥ 0

[x] 原 = 2n – x = 2n + x 0 ≥ x > - 2n

③ 0 的原码( 8 位) [+0] 原 = 00000000 ; [-0] 原 = 10000000 原码表示简单易懂,由原码求真值很容易,但运算复杂。

Page 17: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

2 、反码 所谓反码就是二进制数各位数码 0 变为 1 , 1 变

为 0 ,通常称为取反,用上横线表示。如 x=0 ,则 x =1 。 ⑴ 定点小数反码的定义 x 1 >x ≥ 0

[x] 反 =

( 2 – 2-n ) + x 0 ≥ x > -1

⑵定点整数反码的定义 x 2n >x ≥ 0

[x] 反 =

( 2n+1 – 1 ) + x 0 ≥ x > - 2n

Page 18: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

⑶ 正数的反码与原码相同例如: [+105] 原 = 01101001

[+105] 反 = 01101001 ⑷ 负数的反码 :该负数的原码按位(除符号位外) 取反例如: x= -1101001B= -105

[-105] 原 = 11101001

[-105] 反 = ( 28 – 1 ) + x =11111111 - 1101001

= 10010110 ⑸ 0 的反码 [+0] 原 = 00000000 [+0] 反 = 00000000

[- 0] 原 = 10000000 [- 0] 反 = 11111111

Page 19: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

3 、补码 ⑴ 定点小数补码的定义 定点小数补码形式为 x0 . x1x2…xn ,则补码定义如下: x 1 >x ≥ 0

[x] 补 = ( mod 2 ) 2 + x = 2 - x 0 ≥ x > -1

⑵ 定点整数补码的定义 定点整数补码形式为 x0 x1x2…xn ,则补码定义如下: x 2n >x ≥ 0

[x] 补 = ( mod 2n+1 ) 2n+1 + x = 2n+1 - x 0 ≥ x > - 2n

Page 20: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

⑶ 正数的补码与原码相同 例如: [+4] 补 = [+4] 反 = [+4] 原 = 00000100

[+127] 补 = [+127] 反 = [+127] 原 = 01111111

⑷ 负数的补码为该负数的原码按位(除符号位外)取反后再在最低位加 1 ;或者为该负数对应的反码,在最低位加 1 例如: x = - 4 = - 0000100B ( n=7 ) [- 4] 原 = 10000100 [- 4] 反 = 11111011

[- 4] 补 = 11111100

[- 4] 补 = 27+1 + (– 0000100 ) = 28 – 0000100 = 11111100

⑸ 0 的补码: [+0] 补 = [+0] 反 = [+0] 原 = 00000000

[- 0] 补 = [- 0] 反 +1=11111111+1= 00000000

[+0] 补 = [- 0] 补 = 00000000

⑹ -128 的补码: [- 128] 补 = 10000000

Page 21: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

⑺ 已知一个数的机器数,求其真值 要看机器数用哪一种编码表示,若是原码,则求真值简单,直接按权展开相加即得;若是反码或补码,则先求该数的原码。例 1 :已知 [x] 补 = 11111100 ,求 x 的真值 先求 x 的原码,如果 x 是正数,原码与补码相同;如果 x 是负数,则将该数的补码按位(除符号位)取反后,在最低位加 1 。 [x] 原 = 10000100 , x = - 4

例 2 : [x] 补 = 10010100

则 [x] 原 = 11101011+1=11101100 x = - ( 1×26+ 1×25+ 0×24+ 1×23+ 1×22+ 0×21+ 0×20 )

= - ( 64+32+0+8+4+0+0 ) = - 108 ⑻ 补码运算 ① 正数补码运算 与原码运算相同 ② 负数补码运算 用补码可以将二进制数的减法运算转换为加法运算。

Page 22: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

[X+Y] 补 = [X] 补 + [Y] 补

[X - Y] 补 =[X] 补 +[-Y] 补 = [X] 补 - [Y] 补

补码的减法运算,可以归纳为:先求 [X] 补 、再求[-Y] 补 ,然后进行补码的加法运算。 补码加减法的结果仍然是补码,要得到结果的真值,必须求它对应的原码,再按定义展开相加。 已知 [Y] 补,求 [-Y] 补

[-Y] 补 = [[Y] 补 ] 补,包括符号位在内的所有位取反,再在最低位加 1 。 例如,已知 [Y] 补 =[+4] 补 = 00000100 , Y= +4

则 [-Y] 补 = [- 4] 补 =[[Y] 补 ] 补 = [[+4] 补 ] 补 =11111100

Page 23: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

例 1 :求 64 – 10 ,用补码做 解:设 z = 64 – 10 = 64+ ( - 10 ) [+64] 补 =01000000 , [- 10] 原 = 10001010

[- 10] 补 = 11110110 ,或 [[10] 补 ] 补 =[00001010] 补 =11110110

[z] 补 = [64-10] 补 =[+64] 补 + [- 10] 补 = 01000000 +11110110

= 00110110

结果为正数,所以 z = +54

例 2 :求 34 – 68

解:设 z = 34 – 68 = 34+ ( - 68 ) [+34] 补 =00100010 , [- 68] 原 = 11000100

[- 68] 补 = 10111100

[z] 补 =[+34] 补 + [- 68] 补 =00100010 +10111100 = 11011110

结果为负数, [z] 原 = 10100010 , z = - 34

Page 24: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

( 9 ) n 位二进制数的补码表N位二进制补码数表

十进制数 二进制数 16进制数 十进制数 16进制数

N=8 N=16

+127 01111111 7F +32767 7FFF

+126 01111110 7E +32766 7FFE

+1 00000001 01 +1 0001

0 00000000 00 0 0000

-1 11111111 FF -1 FFFF

-2 11111110 FE -2 FFFE

-126 10000010 82 -32766 8002

-127 10000001 81 -32767 8001

-128 10000000 80 -32768 8000

Page 25: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

(10) 8 位二进制数(包括符号位 1 位,有效

数值 7 位))表示的范围 原码: 01111111— 11111111 +127 — -127 反码: 01111111 — 10000000 +127 — -127 补码: 01111111 — 10000000 +127 — -128

[-127] 反 =10000000 , [-127] 补 =10000001

[-128] 补 =10000000

Page 26: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

(11) 溢出概念和检测方法 ① 溢出概念 各种数据编码都有其数据表示范围,如果在运算过程中出现的数据超出这个表示的范围,称为溢出。 如 8 位二进制数原码表示的范围是 -127 到 +127 ; 8

位二进制数补码表示的范围是 -128 到 +127 等。 对于加法,只有在正数加正数和负数加负数两种情况才会产生溢出,即符号相同的两个数相加可能会溢出的;而符号不同的两个数相加是不会溢出的。 对于减法,只有在正数减负数和负数减正数两种情况才会产生溢出,即符号不同的两个数相减可能会溢出的;而符号相同的两个数相减是不会溢出。 溢出检测方法通常有三种: Ⅰ、根据参加运算的两个数和结果的符号位来判断:

Page 27: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

两个符号位相同的补码相加,如果和的符号位与加数的符号相反,则表明运算结果溢出。 两个符号位相反的补码相减,如果差的符号位与被减数的符号位相反,则表明运算结果溢出。 例 1 : x= -0.1101 , y= -0.1011 求 [x+y] 补

解: [x] 补 =1.0011 [y] 补 =1.0101

[x+y] 补 =[x] 补 +[y] 补 =1.0011+1.0101=10.1000

[x+y] 补 = 0.1000 即两个负数相加,结果是正数,所以溢出 若加法运算的两个数为 X 、 Y ,结果为 Z ,他们的符号位分别是 x0 、 y0 、 z0 ,则溢出判断的逻辑真值表如下: 根据真值表,可得判断溢出的逻辑表达式:

000000 zyxzyxV

Page 28: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

这种溢出判断方法不仅 X0 Y0 Z0 V

需要判断加法运算的结 0 0 0 0

果,而且需要保持原操 0 0 1 1

作数,比较麻烦。 0 1 0 0

表中, V=1 的两行是溢 0 1 1 0

出行。 1 0 0 0

同理,可写出减法的 1 0 1 0

溢出真值表和逻辑表达 1 1 0 1

式 如下: 1 1 1 0

Page 29: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

两个符号位相反的补码相减,如果差的符号位与被减数的符号位相反,则表明运算结果溢溢,表中 v=1 是溢出行。 这里 x0 是被减数的符号位; y0 是减数的符号位; z0 是差的符号位。

x0 y0 z0 v

0 0 0

0

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 0

000000 zyxzyxV

Page 30: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

Ⅱ、第二种方法是 采用双符号位法: 每个数的最高两位作为符号位,正常时,两个符号位应相同,如正数为 00 ,负数为 11 。若运算结果两个符号位不同,表示发生了溢出。若结果符号位是 01 ,表示结果大于数范围的上线,称为上溢;若结果符号位是 10 ,表示结果小于数范围的下线,称为下溢。 例 2 : x= -1100B y= -1000B ,求 x+y

解: [x] 补 =110100 , [y] 补 =111000 (数前加两位符号位) [x+y] 补 = [x] 补 + [y] 补 = 110100+111000=101100

符号位为 10 ,表示下溢,即负溢出 Ⅲ、第三种方法是简单判别法: 利用数据编码的最高位(符号位)和次高位(数值部分的最高位)的进位状况来判断运算结果是否溢出。 两个补码数据实现加减运算时,若最高数值位向符号

Page 31: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

位的进位值与符号位产生的进位输出值不相同,则表示 加减(减法也用补码加法做)运算产生了溢出。即

这里, C0 是两个符号位和最高数值位的进位 C1 相加产生的进位, C1 是最高数值位相加的进位。 V=1 ,表示溢出。 例 3 :设 x = +1011B , y = +1001B ,求 [x+y] 补: 解: [x] 补 = 01011, [y] 补 = 01001

[x+y] 补 = [x] 补 + [y] 补 = 01011+01001=10100

C1 = 1 , C0 = 0 , V = C0⊕ C1 = 1

所以 V= 1 ,结果溢出。这里,两个正数相加,和的符号位为负数,也可判断是溢出。

101010 CCCCCCV

Page 32: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

4 、移码 若定点整数移码形式为 x0 x1x2…xn时,移码的定义为: [x] 移 =2n + x 2n > x ≥ - 2n

式中 [x] 移为机器数, x 的十进制数值为真值 例 1 : x = -1010011B ,则 x = - 83

[x] 原 = 11010011

[x] 补 = 10101101 [x] 移 = 00101101

[x] 移 = 27+x = 27 - 1010011= 10000000 + 10101101

= 00101101

在带符号的移码中,最高位仍是符号位,但 1 表示正号, 0

表示负号。 将移码与补码比较,可以发现只是符号位不同,其余位相

同。

Page 33: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

例 2: 设 x= +1010B , y= -1010B 求 x 、 y 的移码 解: [x] 移 =10000 + 1010 = 11010 ( n = 4 )

[y] 移 =10000 – 1010 = 00110 或 [x] 补 =01010 , [y] 补 =10110

[x] 移 =10000 + 01010=11010

[y] 移 =10000 + 10110=00110 例 3 :零的移码( 8 位) [+0] 移 = [-0] 移 = 10000000

Page 34: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

5 、四种编码的表示

四种编码的数的表示法 二进制数 无符

号数

原码 补码 移码 反码

00000000 0 +0 +0 -128 +0

00000001 1 +1 +1 -127 +1

00000010 2 +2 +2 -126 +2

01111110 126 +126 +126 -2 +126

01111111 127 +127 +127 -1 +127

10000000 128 -0 -128 0 -127

10000001 129 -1 -127 +1 -126

10000010 130 -2 -126 +2 -125

11111101 253 -125 -3 +125 -2

11111110 254 -126 -2 +126 -1

11111111 255 -127 -1 +127 -0

Page 35: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

六、定点数和浮点数1 、定点数:数据的小数点位置是固定不变的,定点整数的小数点定在最低位的右边(纯整数);定点小数的小数点定在最高位的左边(纯小数)。 设任意定点数 x = x0x1 x2 … xn ,在定点机中可表示为如下形式:

符号 尾数 如果 x 是纯小数,则小数点位置在 x0 和 x1 之间,此时数的表示范围为: 0 ≤ x ≤ 1 - 2-n

x0 x1 x2 …… xn-1xn

Page 36: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

如果 x 表示的是纯整数,则小数点在最低位 xn 的右边,此时

数的表示范围位:

0 ≤ x ≤ 2n - 12 、浮点数:小数点的位置可以浮动的数称为浮点数。浮点

数的一般表示如下: N= ( -1 ) S M·RE

其中 M 是浮点数 N 的尾数,而 R 是基数, E 是阶码, S 为数据

的符号位。计算机内浮点数的基数通常是 2 。 M 用定点小数表

示,决定了浮点数的精度。规定尾数用纯小数形式给出,并采用规格化的表示方法。 E 是带符号的定点数,一个浮点数可以表示如下:

符号 S 阶码 E 尾数 M

Page 37: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

阶码 E 通常用整型数表示,它决定了该浮点数的表示范围,阶码一般用补码或移码表示,尾数可用原码或补码表示。例 1 : N1= 1011011.101011= 20111× 0.1011011101011

浮点数格式为 0 , 0111 , 1011011101011

N2= 0.0000110101=2-100 × 0.110101= 21100 × 0.110101

浮点数格式为 0 , 1100 , 110101

N3= -1010100.1001= 20111× 1.10101001001

浮点数格式为 1 , 0111 , 10101001001 (尾数原码表示) 浮点数格式为 1 , 0111 , 01010110111 (尾数补码表示) 浮点数通常也采用双符号位来表示,这时阶码的符号位和尾数的符号位均为两位,书写格式如下: 例 2 : x = 2-0111× 0.11011011 , y = 20101× ( - 0.10110111 ),采用双符号位和补码表示。

Page 38: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

[x] 浮 = 11 , 1001 , 00.11011011

[y] 浮 = 00 , 0101 , 11.01001001 阶符 阶码 ,尾符 尾数 浮点数的规格化数值表示法: 例如: -3.5 = -11.1B= -0.111B × 22

1011B = 0.1011B × 24

-0.3125 = - 0.0101B = -0.101B × 2-1

⑴ 浮点数的运算 ① 加减法:要先对阶,总是使小阶向大阶对齐例 3 : N1=2011 × 0.1001 N2=2001 × 0.1100 解:对阶: N2=2001 × 0.1100 = 2011 × 0.0011 ( 小数点左移 2 位,阶码加 2 ) N1+N2 = 2011 × 0.1001+ 2011 × 0.0011 = 2011 ( 0.1001+ 0.0011 ) = 2011 × 0.1100

Page 39: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

② 乘除法 N1=2j1×S1 N2=2j2×S2

则 N1 ×N = ( 2j1×S1 ) × ( 2j2×S2 ) = 2(j1+j2) × (S1 ×S2 ) N1÷N2= 2(j1-j2) × (S1 ÷ S2 ) ⑵ 浮点数的规格化 若不对浮点数作出明确规定,则同一个浮点数的表示就不是唯一的。如 0.1101 可表示为 0.01101×21 ,也可表示为 1.101×2-1 。为了提高数据的精度,当尾数的值不为 0时,规定其绝对值应≥ 0.5 ,否则要修改阶码同时移动小数点的位置,使其满足这一要求,这个过程称为浮点数的规格化。

Page 40: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

浮点数规格化的定义是使尾数应满足: 1/2 ≤ M < 1

显然,对正数,有 M = 0.1xx…x ;对负数,其补码形式为1.0xx…x ,原码形式为 1. 1xx…x ,这些是规格化的数。否则就是非规格化数,规格化的方法是: 1 、向左规格化 出现 00 .0xx…x 或 11 .1xx…x (补码),就不是规格化数(这里符号位用两位)。 向左规格化规则:尾数左移 1 位,阶码减 1 。 2 、向右规格化 出现 01 .xxx…x 或 10 .xxx…x ,表示浮点运算中尾数运算的结果的绝对值大于 1 ,向左破坏了规格化。 向右规格化规则:尾数右移 1 位,阶码加 1 。

Page 41: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

移动小数点的位置,使其尾数变成其标准格式。当尾数用补码表示时,规格化后的正尾数的第一位为 1 ,负尾数的第一位为 0 ,即正尾数为 0.1xxxxxx ;负尾数为 1.0xxxxx 。对原码,规格化使得小数点后的第一位为 1 ,不管是正数还是负数。 例 4 :将 0.0011 ×20 和 -0.0011 ×20 规格化(尾数为补码) 解: 0.0011 ×20 是正数,规格化后为 0.1100 ×2-2 (尾数左移两位,阶码减 2 ); -0.0011 ×20 是负数,尾数的补码表示为1.1101 ,尾数需要左移两位,规格化后为 1.0100 ×2-2

例 5 : 将 123D 作规格化浮点数的编码,设 1 位符号位,基数为 2 ,阶码 5 位,采用移码表示,尾数 10 位,采用补码。 解: 123D =1111011B = 0.1111011000×27

[7] 移 = 10000+00111=10111

[0.1111011000] 补 = 0.1111011000

Page 42: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

符号位为 0 ,所以浮点格式为: 0 , 10111 , 1111011000

例 6 : 将 -0.00138D 作规格化浮点数的编码,设 1 位符号位,基数为 2 ,阶码 5 位,采用移码表示,尾数 10 位,采用补码。解: -0.00138D= - 0.0000000001011010011B

= - 0.1011010011×2-9

[-9] 移 = 10000-01001= 00111

[- 0.1011010011] 补 =1.0100101101

符号位为 1 ,所以浮点格式为: 1 , 00111 , 0100101101

例 7 :两浮点数 x =201×0.1101 , y = 211 ×(-0.1010) ,求 x+y

设两数在计算机中以补码表示,并采用双符号位。 解: [x] 浮 = 00 01 , 00.1101

[y] 浮 = 00 11 , 11.0110

① 对阶 将 x 的尾数右移两位, [x] 浮 = 00 11 , 00.0011 01

Page 43: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

② 尾数求和 00.0011 01 + 11.0110=11.1001 01

即得 x+y = 00 11 , 11.1001 01

③ 规格化 该结果不是规格化数,需向左规格化,即尾数左移 1 位,阶

码减 1 ,得 x+y = 00 10 , 11.0010 10

④ 舍入,通常采用“ 0舍 1 入法”,得 x+y = 00 10 , 11.0011

⑤ 检查阶码是否溢出,判断方法同前面讲的。

Page 44: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

⑶ 浮点数的表示范围 已知浮点数的阶码 3 位(其中阶符 1 位,数值 2 位,用补码表示),尾数 5 位(尾符 1 位,尾数 4 位,用补码表示),小数点在尾数符号的右边求该浮点数的表示范围: 即 2E × x . xxxx

最大正数: 2011× 0.11112=23 ×15/16=7.5

最小正数: 2100× 0.00012=2-4 ×1/16 = 1/256

最大负数: 2100× 1.1111 补 =2-4 × ( -1/16 ) = - 1/256

最小负数: 2011× 1.0000 补 =23 × ( -1 ) = - 8

Page 45: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

七、定点数乘除法运算(一)原码一位乘法 原码乘法将符号位与数值位分开进行运算,运算结果的符号位是乘数和被乘数符号位的异或,结果的数值部分是乘数和被乘数数值部分的乘积。 图 2-11 是 32 位定点原码一位乘法的结构图, 32 位被乘数在 R2 中,运算开始时 32 位乘数放在 R1 中, R0

为部分积,开始为 0 。 64 位乘积的高位在 R0 中,低位在 R1 中, R0 、 R1 可以串联移位。 定点原码一位乘法的规则如图 2-12 所示。对于 32位乘法需要循环 32 次。由于每次根据乘数的一位进行操作,故称为一位乘法。

Page 46: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

R2: 被乘数; R1 :乘数R0 :部分积R0R1 :乘积

Page 47: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

例 1 :用原码一位乘法进行 2×3 的四位乘法。 R0=0000 ,部分积 R1=0011 ,乘数 R2=0010 ,被乘数 根据乘数最低位是 1还是 0决定部分积 R0是否加被乘数。 乘数最低位是 1 ,加被乘数;是 0 不加被乘数;每次循环 R0 和R1 要右移一位。 参见表 2-8

Page 48: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

(二)补码一位乘法 比较好的带符号数乘法是布斯( Booth )算法。如图2-13 所示。根据最低两个数据位是 01还是 10 来决定加被乘数还是减被乘数。初始时需要在最右边加一个辅助位 0 。有关布斯算法的原理可参看“计算机组成原理”例 2 :用 Booth 算法计算 2× ( -3 ) 解: R2=[2] 补 = 0010 , R1=[-3] 补 = 1101 乘法开始前, R2 = 0010 , R0 = 0000 , R1=1101 ,辅助位 P=0 。 1 、 R1 的最低位和辅助位 P 为 10 ,所以进入步骤 1c ,将 R0 的值减去 R2 的值,结果 1110送入 R0 ,然后进入第 2步,将 R0 和 R1 右移一位,结果为 1111 0110 ,辅助位为 1 。

Page 49: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

R2=0010 , R1=1101 , R0=0000 被乘数 乘数 部分积

结果 11111010 为负数(补码)

Page 50: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

2 、 R1 的最低位和辅助位 P 为 01 ,所以进入步骤 1b ,将 R0 的值加上 R2 的值,即 1111+0010 ,结果 0001送入 R0 ,然后进入第 2步,将 R0 和 R1 右移一位,结果为 0000 1011 ,辅助位为 0 。 3 、判断位为 10 ,进入步骤 1c , R0 减去 R2 ,结

果1110送入 R0 ,然后进入第 2步,将 R0 和 R1 右移一位,结果为 1111 0101 ,辅助位为 1 。 4 、判断位为 11 ,进入步骤 1a ,将 R0 和 R1 右移

一位,结果为 1111 1010 ,辅助位为 1 。即运算结果的原码为 10000110 ,其真值为 -6 。

Page 51: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

(三)定点数除法运算 实现定点一位除法的结构如图 2-14 所示。初始时 32 位除数在 R2 中,32 位被除数在 R1 中, R0为 0 。结果商在 R1 中,余数在 R0 中。 ⑴ 原码一位恢复余数法 商的符号位是被除数和除数符号位的异或。 恢复余数法的流程如图 2-15 所示。

Page 52: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

循环中包含三个步骤,减法、上商和移位。 在上商为 0时,需要将余数恢复为原值。在恢复余数法中,当减法的结果为负数时,上商为 0 的同时还要把除数再加到差上去,恢复余数为原来的正值后再将其移一位。若减得的差为0 或为正值,就不必做恢复余数的操作,上商为 1并将 R0R1 左移一位。

Page 53: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

例 3 :用原码一位恢复余数除法进行 7/2 的运算。 R0=0000 (余数) R1=0111 (被除数) R2=0010 (除数) 实现步骤如表 2-11 所示。 注意最后是 R0 右移一位。 结果 R0=0001 (余数) R1=0011 (商)

Page 54: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

⑵ 原码一位加减交替法 其流程如图 2-16

所示。其规则是: 当余数为正时,余数左移一位,上商 1 ,减除数;当余数为负时,上商 0 ,余数左移一位,加除数。 R2 :除数 R1 :被除数,商 R0 :余数

Page 55: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

例 4 :用原码加减交替一位除法进行 7/2 运算。 初始: R0=0000 , R1=0111 , R2=0010 ,步骤如表 2-12 所

示。循环 步骤 余数(R0,R1)

初始值 0000 0111 0

1:减 0010 1110 0111

2b:左移,商 0 1100 1110 1

3b:加 0010 1110 1110

2b:左移,商 0 1101 1100 2

3b:加 0010 1111 1100

2b:左移,商 0 1111 1000 3

3b:加 0010 0001 1000

2a:左移,商 1 0011 0001

3a:减 0010 0001 0001

4a:左移,商 1 0010 0011

4

5:R0右移 0001 0011

Page 56: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

八、浮点数运算 1 、浮点数加法和减法 ⑴ 对阶, 对阶的方法是:将原来阶码小的数的尾数部分右移,并相应地增加其阶码,以保持浮点数的值不变。 由于在右移过程中将最低位移出,所以实际上浮点数值的精度会下降。另外在尾数进行移位时要对数据进行符号位扩展。对补码形式的尾数,正数时在高位补 0 ,负数时在高位补 1 。 ⑵ 尾数运算, 实现两个尾数的加减运算。 ⑶ 规格化 规格化处理通过移位尾数并相应地调整阶码来实现。通过左移来实现规格化的过程称为向左规格化,其操作规则是:尾数左移 1 位,阶码减 1 ,直到数据规格化。

Page 57: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

尾数加减运算时,一般采用双符号位的补码。尾数运算的结果可能得到 01.xxxxxx 或 10.xxxxxx 。即两个符号位不相等,这在定点数运算中称为溢出,是不允许出现的。但在浮点运算中,它表示尾数求和结果的绝对值大于 1 ,可以将其右移以实现规格化表示。这种规格化的过程称为向右规格化。其操作规则是:尾数右移 1 位,阶码加 1 。 ⑷ 舍入 在进行浮点数运算时,为了保证精度,在运算的中间值可以多保留一些数据位,在结果形成时需要进行舍入操作以去除这些位,方法是: 截取( chopping )法,最简单,将多余的位去掉,剩下的位不变,即有舍无入。 冯 .诺依曼舍入法,在截取多余位时,将剩下数据的最低位置 1 。

Page 58: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

0舍 1 入法,,移去 1时在高一位加 1 ,移去 0时高一位不变。 ⑸ 检查阶码是否溢出 浮点数的溢出表现为阶码溢出。如果阶码正常,运算正常完成;若阶码下溢,要置结果为浮点数的机器零;若阶码上溢,则置溢出标志。 浮点数加减法运算操作流程如图 2-23 所示。

Page 59: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

例 1 :用浮点数加法对数据 0.5 和 -0.4375 进行操作,设可

存储 4 位尾数。 解:没有规定浮点数格式,可直接用数值运算来表示。 0.5 = 0.1000 × 20

-0.4375 = -0.0111 = -0.1110 × 2-1

步骤 1 :对阶。将较小的数进行右移 -0.1110 × 2-1 = -0.0111 × 20

步骤 2 :尾数相加 0.1000 × 20 + ( -0.0111 × 20 ) = 0.0001 × 20 步骤 3 : 规格化 0.0001 × 20 = 0.1000 × 2-3

步骤 4 :舍入,数据已适合 4 位存储,不必进行舍入 步骤 5 :检查溢出,本题无溢出,最后结果为: 0.1000 × 2-3 = 0.0001 = 0.0625

Page 60: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

例 2 : x= 201 × 0.1101 , y=211 ×(- 0.1010) ,尾数用 4 位补码表示,保护位 2 位,阶码( 4 位, 2 位是阶符)以原码表示,数的符号用两位表示,求 x+y 。 解: [x] 浮 = 00 01 , 00.1101

[y] 浮 = 00 11 , 11.0110 步骤 1 :对阶。阶差为 11-01=10 ,即 2 ,故 x 的尾数右

移 2 位,得 [x] 浮 = 00 11 , 00.0011 01 这里 01 为保护位 步骤 2 :尾数相加 [x+y] 浮 = 00 11 , 11.1001 01 步骤 3 : 规格化,由于符号位与小数点后第一位数相等, 所以不是规格化数,向左规格化,得 [x+y] 浮 = 00 10 , 11.0010 10 步骤 4 :舍入,设采用 0舍 1 入法,得: [x+y] 浮 = 00 10 , 11.0011

Page 61: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

步骤 5 :检查溢出,本题无溢出,最后结果为: x+y = 210 × ( -0.1101 )

2 、浮点数乘法和除法 两个浮点数相乘,尾数相乘,阶码相加; 两个浮点数相除,尾数相除,阶码相减;结果的符号位是两个浮点数符号位的异或。 运算流程如图 2-25 所示。 例 3 :用浮点数运算流程对数据 0.5 和 -0.4375 进行乘法操作,设可存储 4 位尾数。

Page 62: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

解:本题和例 1 一样,没有规定浮点数格式,可直接用数值运算来表示。 0.5 = 0.1000 × 20

-0.4375 = -0.0111 = -0.1110 × 2-1

步骤 1 :阶码相加, 0+ ( -1 ) = -1

步骤 2 :尾数相乘 0.1000 × 0.1110 = 0.01110000 ,结果为: 0.01110000× 2-1

步骤 3 :规格化,结果为: 0.11100000× 2-2

步骤 4 :舍入,采用 0舍 1 入法,保留 4 位尾数,结果为: 0.1110× 2-2

步骤 5 :检查溢出,因为两个数的符号相反,不会溢出, 最后结果为: - 0.1110× 2-2 = - 0.21875

Page 63: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

第二节 逻辑电路

一、基本逻辑门电路 1 、逻辑乘和与门 符号: 真值表: A B Y

A 0 0 0

& Y 0 1 0

B 1 0 0

1 1 1

表达式: Y=A·B =A×B = Y=A B ∧

Page 64: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

2 、逻辑加和或门 符号: 真值表: A B Y

A 0 0 0

≥1 Y 0 1 1

B 1 0 1

1 1 1

表达式: Y=A+B =A B∨ 3 、逻辑反和非门 符号: 真值表: A Y

A 1 Y 0 1

1 0

表达式: Y= A

上面三种基本逻辑门实现三种基本逻辑运算。

Page 65: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

4 、其它基本门电路 与非门 或非门 异或门 异或非门 (异门) (同门) A B Y A B Y A B Y A B Y

0 0 1 0 0 1 0 0 0 0 0 1

0 1 1 0 1 0 0 1 1 0 1 0

1 0 1 1 0 0 1 0 1 1 0 0

1 1 0 1 1 0 1 1 0 1 1 1

Y=A ·B Y=A+B Y=A B Y=A B⊕ ⊙ Y=A B=A B+A B⊕ Y=A B =A B+A B = A B⊙ ⊕

Page 66: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。
Page 67: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

三态门的输出有三种状态:0 、 1 和高阻态。

它有三根线,输入 A 、输出Y 和控制线 C 。

74LS125控制线 C 低电平有效。该线为高时,输出高阻态。

逻辑真值关系如下: C A Y 1 × 高阻 0 1 1 0 0 074LS126控制线 C 高电平有

效。该线为低时,输出高阻态。

逻辑真值关系如下: C A Y 0 × 高阻 1 1 1 1 0 0

Page 68: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

二、二进制数加法电路 1 、半加器

0000000

001

BABABAS

BAC

Page 69: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

2 、全加器

Page 70: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

逻辑符号:

iiii

iiiiiii

CBAS

CABACBC

1

多个输入的异或门,其逻辑关系是:输入变量 1 的个数为偶数或零时,则输出为 0 ;输入变量中 1 的个数为奇数时,输出为 1 。

Page 71: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

3 、四位二进制数加法电路

A : 1 0 1 0B : 1 0 1 1S : 1 0 1 0 1 C4 S3 S2 S1 S0

01234 SSSSCS

Page 72: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

4 、可控反相器及加 / 减电路 利用补码可将减法变为加法来运算,需要一个可控反相器,它能将原码变成反码,并使其最小位加 1 ,如图 1-8 所示。 可控反相器实际上是一个异或门,其真值表见表 1-3 。

Page 73: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

利用可控反相器可作成补码加法 / 减法器,如图 1-9 所示。

SUB=0时,是加法器,做 A+B 运算SUB=1时,是减法器,做 A-B 运算

Page 74: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

当 SUB=0时,图 1-9 与图 1-7完全一样,其和为:

当 SUB=1时,各位反相器的输出与 B 的各位反相,而最

右边第一位也是用全加器,所以此位的相加为:

总和输出 S 为:

01234 SSSSCS

100 BA

BABA

BBBBAAAABAS

'

01230123 11

Page 75: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

三、微机的基本组成电路 1 、算术逻辑单元 A B

算术逻辑单元可以作算术运算,也可作逻辑运算,是 ALU

微机中最基本的运算单元。 Control

如图 1-10 所示。 S

A 和 B 是两个二进制数, S 图 1-10 ALU 的符号

是运算结果, Control 是控制信号。

Page 76: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

2 、触发器 触发器是微机中基本的记忆单元,用它能组成寄存器、存储器等。 ⑴ RS触发器:如图 1-11 、 1-12 、 1-13 所示。

图 1-11 中,逻辑真值表如右: R S Q Q 操作 0 1 1 0 置位 1 0 0 1 复位 0 0 1 1 1 1 不确定

Page 77: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

图 1-12 是 RS触发器的逻辑符号, S端称为置位端, R端称为复位端。 图 1-13 是时标 RS触发器, CLK 即为时标脉冲,无论置位还是复位都必须在时标脉冲端为高电平时才能进行。 ⑵ D触发器 如图 1-14 所示,当 D端为高电位时, S端为高, R端为低,

所以此时 Q端是高电位,称为置位;当 D 为低时,则反之,Q端为低电位,称为复位。 图 1-15 是时标 D触发器,利用 CLK 的正跳变将 D端的电位打入触发器。

Page 78: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

D触发器也称为边缘触发的触发器,通常是正跳变触发

,其逻辑真值关系如下: D CLK Q

1 ↑ 1

0 ↑ 0

当然也有负跳变触发的 D触发器,使用是要注意极性。 ⑶ JK触发器

图 1-16 JK触发器

Page 79: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

JK触发器的符号如图 1-16 所示。 CLK 的正跳变,将 JK 的

状态打入触发器。其动作状态如上表所示。 通常用 D触发器组成寄存器,用 JK触发器组成计数

器,因为 JK触发器有计数功能。 JK触发器也有负跳变触发

的。

3 、寄存器 寄存器有缓冲寄存器和移位寄存器两种。 ⑴ 缓冲寄存器

Page 80: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

图 1-17 是 4 位缓冲寄存器, CLR 是复位信号, CLK是时

钟脉冲, CLK 的正跳变,将 X3 、 X2 、 X1 、 X0 四位数打

入触发器寄存起来。结果是 Y3=X3 , Y2=X2 , Y1=X1 ,Y0=X0 。图 1-18 是可控缓冲寄存器的符号, LOAD=1 ,

X

数据可以装入; LOAD=0 ,不允许装入。 ⑵ 移位寄存器

Page 81: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

4 、计数器 ⑴ 行波计数器 图 1-20 是行波计数器原理图, J 、 K悬空着,相当于 J 、

K

都是 1 ,即触发器都处于计数状态(或翻转状态)。图中CLR 是清除信号,开始计数前,先在 CLR 加一负脉冲,使

Page 82: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

计数器输出为零,即 Q=Q3Q2Q1Q0=0000 。来第一个 CLK脉冲,使 Q=0001 ,来第二个 CLK ,则 Q=0010 ,依次下去,直至第

15

个 CLK脉冲到来,使 Q=1111 。第 16 个 CLK脉冲使 Q=0000 ,完

成一次循环。因此这个计数器可以由 0 计到 15 的数。⑵ 可控计数器 图 1- 21 是可控计数器原理图。图中,所有 J 、 K端连在一

起,由 COUNT信号控制。当 COUNT 为高电平时,触发器具有翻

转功能; COUNT 为低时触发器就不能翻转。图 1- 22 是可控计

数器的符号。

Page 83: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

( 3 )环形计数器 图 1- 23 是由 D触发器组成的 4 位环形计数器。当 CL

R 有高电位输入时(注意,这种 D触发器是高电位清零),

右边第一位置 1 ,其它 3 位清零,这时 Q=0001 。第一个 C

LK

使 Q=0010 ;第 2 个 CLK脉冲使 Q=0100 ;第 3 个 CLK脉冲使

Q=1000 ;第 5 个 CLK脉冲使 Q=0001 ,依次下去,使置1 位

环形旋转。

Page 84: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

5 、累加器 累加器也是一个由多个触发器组成的寄存器,它名为累加器,实际上并不进行加法运算,而是作为 ALU 运算过程中的代数和的临时存放处,它除了能装入及输出数据外,还能使数据左移或右移。 6 、三态门和三态缓冲器 前面已讲过,这种门的输出有三种状态,即 0 、 1 和高阻态。门和缓冲器的区别是缓冲器比门能带更大的负载。 7 、锁存器 锁存器具有锁存数据或地址的功能。通常使用带三态缓冲器的八 D锁存器,如 74LS373 或 8282 ,如图 1- 24 所示。

Page 85: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

图 1-25 是地址锁存器 74LS373 的结构图。

Page 86: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

当 OE 为低电平时,三态门导通,允许 Q端输出;当 OE为高电平时,三态门关闭,输出高阻(或叫浮空状态)。 G 称为数据打入线,正跳变将数据打入触发器,在 G 高电平时,保持 Q 与 D 的状态相同;当 G从高电平返回到低电平时, D端的数据即锁存在 8 位锁存器中。

Page 87: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

8 、译码器 通常作存储器地址译码器或外部设备端口地址译码器。常用的 3-8译码器 74LS138 如图 1- 26 所示。其中 C 、 B 、

A

是三个译码输入端;三个控制端是 E1 、 E2 、 E3 ,只有满

足条件 E1=0 、 E2=0 、 E3=1 ,译码器才能工作。

74LS138 的逻辑关系如下表所示。

Page 88: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

表: 74LS138 的逻辑功能表E3 E2 E1 C B A 译码器的输出

1 0 0 0 0 0 Y0=0 ,其余均为 1

1 0 0 0 0 1 Y1=0 ,其余均为 1

1 0 0 0 1 0 Y2=0 ,其余均为 1

1 0 0 0 1 1 Y3=0 ,其余均为 1

1 0 0 1 0 0 Y4=0 ,其余均为 1

1 0 0 1 0 1 Y5=0 ,其余均为 1

1 0 0 1 1 0 Y6=0 ,其余均为 1

1 0 0 1 1 1 Y7=0 ,其余均为 1

其、余 情况 × × × Y7-Y0全为 1

Page 89: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

9 、选择器 A 如左图为 2选 1 的选择器,关系

Y 如下: B C Y

C 0 A

图 1-27 选择器 1 B

10 、模拟开关 常用 8路模拟开关如图 1- 28 所示。 A 、 B 、 C 的 8 种

编码用于选择哪个开关导通。

Page 90: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

A 表: CD4051 真值表 B

C

D Y

E

F

G

H

C1 C2 C3

图 1-28 8路模拟开关 CD4051

C3 C2 C1 Y=

0 0 0 A

0 0 1 B

0 1 0 C

0 1 1 D

1 0 0 E

1 0 1 F

1 1 0 G

1 1 1 H

Page 91: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

4 位机、 8 位机、 16 位机、 32 位机和

64 位机等。 3 、按结构分 台式机 笔记本 掌上型

Page 92: 二、进位制数之间的转换 1 、二进制数转换成十进制数      根据二进制数的定义,只要将它按权展开再相加。

三、微机常用术语 1 、位( bit) :计算机中最小的数据单位 2 、字节( byte) :一个字节 =8 个二进制位,即 1byte (B) = 8 bits ( b ) 3 、字 (word): 微机中一个字 =16 个二进制位,即 1word(W) = 16bits = 2 bytes

4 、字长:指参与运算的数的基本位数,它决定了计算机内部寄存器、加法器以及数据总线等的位数,反映了计算机的精度,

5 、运算速度: MIPS 每秒百万条指令 6 、主频:计算机内部的主时钟 7 、平均无故障运行时间:此数表示计算机的可靠性 8 、性能价格比:此数越大越好