当前位置:首页 >> >>

第2章计算机中的数制与码制


第2章 计算机中的数制与码制
要求掌握计算机中的数制与码制的基础知识,主 要包括各种进制数的表示方法及相互转换、二进制数的 运算、有符号二进制数的表示方法及运算时的溢出问题、 实数的二进制表示法、BCD编码和ASCII字符代码等内容。 重点掌握各种进制数的表示及相互转换、有符号数的补 码表示及补码运算。

§2.1 二进制数的基础知识
一、 任意进制数的表示 任意一个数N可以表示成P进制数:

(N )P =

i= M



N 1

K iP

i

K 式中i表示数的某一位, i 表示第i位的数字,P为基数,

P

i 为第i位的权,M、N为正整数。

K i=0,1…P-1。

§2.1 二进制数的基础知识
对于n位整数m位小数的任意十进制数N,有:
N 1

N10 =
如:

i= M

∑ K i 10

i



K=0,1,…9) i

= 3 ×10

(357 .32 )10
2

+ 5 ×101 + 7 ×100 + 3 ×101 + 2 ×102

=357.32

§2.1 二进制数的基础知识
对于n位整数m位小数的任意二进制数

N2

,有:

N2 =
如:

i = M

K i 2i ∑

N 1

( Ki =0或1)

(1101 . 011 ) 2
3

= 1× 2 =

+1× 22 + 0× 21 +1× 20 + 0× 21 +1× 22 +1× 23

(13 . 375 ) 10

§2.1 二进制数的基础知识
对于n位整数m位小数的任意十六进制数有:
N 1

( N )16 =
如: =

i= M

∑ K i16

i



Ki=0,1,…9,A,B,C,D,E,F)

( 3C .4 )16
3 × 16 + 12 × 16 + 4 × 16
1 0 1

= ( 60 . 25 ) 10 以上方法称为位置计数法或位置加权法

§2.1 二进制数的基础知识
二、 各种进制间的相互转换 1. 十进制 任意进制数(设为P进制)的转换规则

(1)整数部分:N 除以P取余数 例1. 十进制数301 十六进制数

转换过程如下: 16 301 16 18 ……余数为:D= K 0 16 1 ……余数为:2= K1 0 ……余数为:1= K 2 ∴ 301=12DH

§2.1 二进制数的基础知识
例2. 十进制数301 转换过程如下: 2 2 2 2 2 2 2 2 2 ∴ 301 150 75 37 18 9 4 2 1 0 ……余数为:1= K 0 ……余数为:0= K 1 ……余数为:1= K 2 ……余数为:1= K 3 ……余数为:0= K 4 ……余数为:1= K 5 ……余数为:0= K 6 ……余数为:0= K 7 ……余数为:1= K 8 低位 二进制数

高位

301=100101101B

§2.1 二进制数的基础知识
(2)纯小数部分:N乘以P取整数 例1. 十进制小数0.6875 转换过程如下: 0.68752 =1.375 0.375 2 =0.75 0.752 =1.5 0.52 =1.0 例2. 十进制小数 转换过程如下: 0.687516 =11.0 二进制小数 高位

K 1 =1 K 2=0 K 3=1 K 4=1

低位

∴ 0.6875=0.1011B 十六进制小数

K 1 =B ∴ 0.6875=0.B H

§2.1 二进制数的基础知识
2. 任意进制数 3. 二进制 如: 1001001011010.101001111 B 1 2 5 A. A 7 8H 十进制数的转换规则 十六进制数的转换规则 按权展开,即位置加权法

§2.1 二进制数的基础知识
三、 二进制数的算术运算 二进制计数制不仅物理实现容易,且运算方法也比 十进制计数制大为简单,所以计算机中均采用二进制数。 二进制数的算术运算包括加、减、乘、除。 例: 、、 1 0 1 1 0 1 0 1 B 1 0 1 1 0 1 0 1 B + 0 0 0 0 1 1 1 1 B 、、、、、、 1 1 0 0 0 1 0 0 B - 0 0 0 0 1 1 1 1 B 1 0 1 0 0 1 1 0 B

§2.1 二进制数的基础知识
四、 二进制数的逻辑运算 二进制数的逻辑运算包括与、或、异或、非四种运算。 例: 1 0 1 1 0 1 0 1 B 1 0 1 1 0 1 0 1 B



0 0 0 0 1 1 1 1 B 0 0 0 0 0 1 0 1 B 1 0 1 1 0 1 0 1 B



0 0 0 0 1 1 1 1 B 1 0 1 1 1 1 1 1 B



0 0 0 0 1 1 1 1 B 1 0 1 1 1 0 1 0 B

X= 1 0 1 1 0 1 0 1 B X = 0 1 0 0 1 0 1 0 B

§2.2 有符号二进制数的表示方法及溢出问题
一、 有符号二进制数的表示方法 前面我们接触的二进制数均为无符号数,即所有二 进制数位均为数值位,很多情况下都是这样对待的。但 在有些情况下,有些数值是带符号的,即可能是正数, 也可能是负数。这样就存在一个有符号二进制数的表示 方法问题。 1. 数的符号表示方法 为了表示一个有符号数,除了数值位以外,还应制 定符号位,通常以这个数的最高位表示符号位。

§2.2 有符号二进制数的表示方法及溢出问题
我们假定讨论的数为整数,对8位有符号二进制整 数,用下表示:

D7 D6 D5 D4 D3 D2 D1 D0
0:表示正数 1:表示负数 符号位 D 7 数值部分

这种表示方法称为机器数表示法。有符号二进制数 的真值为它对应的十进制数。

§2.2 有符号二进制数的表示方法及溢出问题
2. 原码表示法 如果正数的符号位用0表示,负数的符号位用1表示, 绝对值的编码规则与前面讲的无符号数编码规则相同, 这种表示方法称为原码表示法。
[X] 一个数X的原码记为: 原

D7 D6 D5 D4 D3 D2 D1D0
0 0 0 0 0 0 1 1

+3的表示 [+3] 原 =00000011B

数值部分=绝对值(用无符号二进制数表示) 符号位

§2.2 有符号二进制数的表示方法及溢出问题
1 0 0 0 0 0 1 1

-3的表示

[-3]

原=10000011B

[+0] 原 =0 0 0 0 0 0 0 0B

[-0] 原 =1 0 0 0 0 0 0 0B

数0的两种表示方法 对8位有符号二进制数用原码表示的范围: 正数从00000000 01111111,+0 负数从10000000 11111111,-0

+127 -127

§2.2 有符号二进制数的表示方法及溢出问题
有符号二进制数用原码表示的优缺点: 优点:表示简单,易于理解,真值转换方便。 缺点:+、-运算麻烦。因为它仅仅是将其值的符号用一 位二进制数表示,因而它的原码数的+、-运算完全同笔 算。如两个正数相减,计算机首先要判断被减数的绝对 值与减数的绝对值的大小,然后决定是颠倒过来相减, 还是直接相减。最后在结果的前面加上正确的正负号。 所以,势必增加运行时间,降低速度,使运算器的逻辑 复杂化。为了改进它,引进了补码的概念。

§2.2 有符号二进制数的表示方法及溢出问题
3. 补码表示法 (1)补码的概念 一个数X的补码记为 [X] 补 ,补码可定义为: X
[X] 补=

当 0 ≤ x < 2 n 1 当

2n + x

2n1 ≤ x < 0

(mod 2 n )

从定义可见,正数的补码=原码,即 [X] 补 = [X] 原 , 所以,只有负数求补的问题。

§2.2 有符号二进制数的表示方法及溢出问题
(2)一个数的补码的求法 根据定义求补码
[X] 补 =

2n + x = 2 n x

,X<0

n 即负数x的补码等于模 2 加上其真值(或减去其真 值的绝对值)。

如:x=-1010111B,n=8,则
[X] 补= =

28 + (1010111B)

10000000B-1010111B n (mod 2 ) = 10101001B 这种方法因要做一次减法,很不方便。

§2.2 有符号二进制数的表示方法及溢出问题
利用原码求补码 一个数的补码等于其原码除符号位保持不变外,其余各 位按位取反,再在最低位加1。 如:x=-1010111B [X] 原 =11010111B [X] 补= 10101000B+1=10101001B 值的注意的是:0的补码只有唯一的形式,符号位和数值位 均为0。无正负0之分。 简便的直接求补码 直接从原码求它的补码:从最低位起,到出现第一个1 以前(包括第一个1)原码中的数字不变,以后逐位取反, 但符号位保持不变。

§2.2 有符号二进制数的表示方法及溢出问题
如:x=-1010111B [X] 原=1 1 0 1 0 1 1 1 B

由原码求补码:

其后各位取反

第一个1不变

符号位不变
[X] 补 = 10101001B

8位二进制补码所能表示的数的范围:-128 16位二进制补码所能表示的数的范围:-32768

+127 +32767

§2.2 有符号二进制数的表示方法及溢出问题
(3)数的补码表示转换为原码表示 一个用补码表示的负数,如将 [X] 补再求一次补,即 将 [X] 补 除符号位外取反加1,就可得到 [X] 原 ,用下 式表示:
[X] 补

补 = [X] 原

如:[X] 补 = 10101001B
[X] 补

补 = 11010111B = [X] 原

§2.2 有符号二进制数的表示方法及溢出问题
(4)补码的运算规则 第一个公式:两个n位二进制数之和的补码等于这两数 补码之和,即:
[X+Y]

补= [X] 补 + [Y] 补

上式表明,当带符号的两个数采用补码形式表示时, 进行加法运算可以把符号位和数值位一起进行运算,(若 符号位有进位,则丢掉),结果为两数之和的补码形式。 例: (+33)+(-15) 0 0 1 0 0 0 0 1 B [+33] 补 + 1 1 1 1 0 0 0 1 B [-15] 补 进位,丢掉 [1]0 0 0 1 0 0 1 0 B [+18] 补

§2.2 有符号二进制数的表示方法及溢出问题
第二个公式: 两个n位二进制数之差的补码等于这两数 补码之差,即:
[X-Y]

补= [X] 补 - [Y] 补

上式表明,当带符号的两个数采用补码形式表示时, 进行减法运算可以把符号位和数值位一起进行运算,(若 符号位有借位,则丢掉),结果为两数之差的补码形式。 例: (+33)-(-15) 0 0 1 0 0 0 0 1 B [+33] 补 - 1 1 1 1 0 0 0 1 B [-15] 补 [1]0 0 1 1 0 0 0 0 B [+48] 补

借位,丢掉

§2.2 有符号二进制数的表示方法及溢出问题
第三个公式:补码减法运算时,也可以利用加法基本 公式,即:
[X-Y]

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

(mod 2 )
n

因为:X-Y = X+(-Y) 所以:[X-Y]补 = [X+(-Y)] 补 = [X] 补 + [-Y] 补 上式表明,求 [X-Y] 补 可以用 [X] 补 与 [-Y] 补 相加 来实现。这里的 [-Y] 补 ,即对减数求负操作,也就是对补 码表示的数(无论是正数还是负数)求得其相应的用补码 表示的负数(如果原来是正数,求负后得负数;原来是负 数,求负后得正数)。一般称已知 [Y] 补 ,求得 [-Y] 补的 过程叫变补或求负。

§2.2 有符号二进制数的表示方法及溢出问题
变补或求负是一种很有用的运算。求法: 若已知 [Y] 补 =Y n 1Y n 2 …… Y1Y0 ,则对 [Y] 补 的每一 位(包括符号位)都按位取反,然后再加1,结果即 [-Y] 补 。 例: (+33)-(+15) 00100001B [+33] 补 - 00001111B [+15] 补 00010010B [+18] 补 00100001B [+33] 补 + 11110001B [-15]补 [1] 00010010B [+18] 补 借位,丢掉 (公式二) (公式三)

§2.2 有符号二进制数的表示方法及溢出问题
二、 有符号数运算的溢出问题 如果计算机的字长为n位,n位二进制数的最高位为 符号位,其余n-1位为数值位,采用补码表示法时,可表 示的数X的范围为:

2

n 1

≤ X ≤2

n 1

1

当n=8时,可表示的有符号数的范围为: -128 +127

当n=16时,可表示的有符号数的范围为: -32768 +32767

§2.2 有符号二进制数的表示方法及溢出问题
两个有符号数进行加减运算时,如果运算结果超出 可表示的有符号数的范围时,就会发生溢出,使计算结 果出错。 很显然,溢出只能出现在两个同号数相加或两个异 号数相减的情况下。

§2.2 有符号二进制数的表示方法及溢出问题
例: (+72)+(+98)=+170>+127
0 1 0 0 1 0 0 0 B [+72] 补 + 0 1 1 0 0 0 1 0 B [+98] 1 0 1 0 1 0 1 0 B 有进位 C p =1 无进位 C S =0

溢出

补 设次高位(数值部 分最高位)向最高 位(符号位)的进 位标志为 C p ;最 高位(符号位)和 次高位的进位相加 的进位标志为 CS 。

[-86] 补

溢出,结果出错(正溢出)

C s C

p

= 1

§2.2 有符号二进制数的表示方法及溢出问题
例: (-83)+(-80)=-163<-128
1 0 1 0 1 1 0 1 B [-83] 补 + 1 0 1 1 0 0 0 0 B [-80]

溢出



[1]0 1 0 1 1 1 0 1 B

[+93]补

无进位 C p =0 有进位 CS =1 溢出,结果出错(负溢出)

C s C

p

= 1

§2.2 有符号二进制数的表示方法及溢出问题
结论:(1)对于加法运算,如果次高位(数值部分最高 位)形成进位加入最高位(符号位),即 C p =1, 而最高位相加(带 C p )却没有进位输出,即 C S =0。 (2)次高位没进位 C p =0,而最高位有进位输出, CS =1。 发生溢出,即 C 这两种情况分别是: (1)两正数相加,结果超出范围,形式上变为负数。 (2)两负数相加,结果超出范围,形式上变为正数。
s

C

p

= 1 时,溢出。

§2.2 有符号二进制数的表示方法及溢出问题
同理,我们可得出结论:

C 对于减运算,(1)当次高位不需从最高位借位, p =0,但最高位却需借位 C S =1;(2)或当次高位需从最 高位借位,C p =1,但最高位不需借位 C S =0;
这两种情况( C s C
p

= 1 )下,产生溢出。

§2.3 二进制编码的十进制数(BCD编码)
一、 8241BCD码 前面讲过,计算机只认识0、1二进制代码,但人们 最习惯的是十进制。为了解决这一矛盾,提出了一个比 较适合于十进制系统的二进制代码的特殊形式—BCD码。 BCD码是用四位二进制数表示1位0 —9的十进制数, 而4位二进制数码有16种组合,原则上可任选10种作为代 码,但为便于记忆和比较直观,最常用的是8421BCD码, 8、4、2、1分别是4位二进制数的位权值。 下面给出十进制数和8421BCD编码的对应关系。

§2.3 二进制编码的十进制数(BCD编码)
十进制数 0 1 2 3 4 5 6 7 8 9 8421BCD码 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001

§2.3 二进制编码的十进制数(BCD编码)
如:十进制数和BCD码相互转换 75.4 BCD码 75.4 =(01110101.0100) BCD BCD码10000101.0101 十进制数

(10000101.0101) BCD =85.5
同一个8位二进制代码表示的数,当认为它表示的是二 进制数和认为它表示的是二进制编码的十进制数,数值是 不相同的。如: ( 00011000 ) 2 =24

(00011000 ) BCD =18

§2.3 二进制编码的十进制数(BCD编码)
在计算机中,BCD码有两种基本格式 a.组合式BCD码格式 b.分离式BCD码格式 a.组合式BCD码格式 两位十进制存放在一个字节中。 如数24的存放格式:

D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 0 0 1 0 0
2 4

§2.3 二进制编码的十进制数(BCD编码)
b.分离式BCD码格式 每位数存放在8位字节的低4位, 高4位的内容与数值无关。如 数24的存放格式:

二、 BCD码的加减法运算

D 7 D 6 D5 D 4 D3 D 2 D1 D 0 x x x x 0 0 1 0 2 x x x x 0 1 0 0 4

下面我们以组合式BCD码格式为例讨论BCD码的加减运算。 由于BCD编码是将每个十进制数用一组4位二进制数表示, 若将这种BCD编码直接交计算机运算,计算机总是把它按二 进制数处理,所以结果可能出错。

§2.3 二进制编码的十进制数(BCD编码)
如:38+49=87 0 0 1 1 1 0 0 0 BCD 38 0 1 0 0 1 0 0 1 BCD 49 1 0 0 0 0 0 0 1
81 87

出错原因:十进制相加应 逢十进一,但计算机按二 进制运算,每四位一组, 低四位向高四位进位相当 十六进制运算,“逢十六 进一”。所以当结果超过9 时将比正确值少6。

显然,结果出错。

解决办法:加六修正

§2.3 二进制编码的十进制数(BCD编码)
加六修正规则: (1)如果任何两个对应位BCD数相加的结果向高一位 无进位时,若得到的结果≤9,则该位不需修正。若结果 >9且<16,该位进行加六修正。 (2)如果任何两个对应位BCD数相加的结果向高一位有 进位时,(即结果≥16),该位进行加六修正。 (3)低位修正结果使高位>9时,高位进行加六修正。 例:94+7=101

§2.3 二进制编码的十进制数(BCD编码)
1 0 0 1 0 1 0 0 + 0 0 0 0 0 1 1 1 1 0 0 1 1 0 1 1 + 0 0 0 0 0 1 1 0 1 0 1 0 0 0 0 1 + 0 1 1 0 0 0 0 0 94 7 低4位满足法则1 加六修正 高4位满足法则3 加六修正 101结果正确

[1]0 0 0 0 0 0 0 1

§2.4 ASCII字符代码
ASCII ——美国国家信息标准交换码
ASCII 用7位二进制代码对任一字符编码,包括: 32个通用控制符 0--9 10个数字 52个英文大小写字母 34个专用符号

共128个

本章习题: 1.(3)2.(3) 3.(2) 4.(1)(2) 5.(1) 6.(1)(2)(3) 7.(1)(2)(3) 8.(1)(6) 9.(1)(3) 11.(1)(2)


相关文章:
第2章计算机中的数制和码制._图文.ppt
第2章计算机中的数制和码制. - 第二章 计算机中的数制和编码 1 主要内容 ?
第2章 计算机中的数制和编码_图文.ppt
第2章 计算机中的数制和编码 2.1.2 各种数制的相互转换 1.任意进制数转换
微机原理 第2章 计算机中的数制和编码_图文.ppt
微机原理 第2章 计算机中的数制和编码 - 第2章 计算机中的数制和编码 教学内
第2章 计算机中数制和编码_图文.pdf
第2章 计算机中数制和编码 - YHC 2.1 计算机数的表示 第2章 计算机中数制和编码 2.1、计算机数的表示法 2.1.1、数和数制 2.1.2、带符号数的表示 2....
02第二章计算机中的数制和码制解析_图文.ppt
02第二章计算机中的数制和码制解析 - 第二章 本章教学目的与要求 ? 熟练掌握
02第二章计算机中的数制和码制_图文.ppt
02第二章计算机中的数制和码制 - 第二章 本章教学目的与要求 ? 熟练掌握有符
微机原理及接口技术 第2章 计算机中的数制和码制_图文.ppt
第二章 计算机中的数制和码制基本要求:熟悉并掌握计算机中信息的表示方法,熟练掌握
第二章 计算机中的数制和码制_图文.ppt
第二章 计算机中的数制和码制 - 第2章 计算机中的数制和编码 第2章 计算机中
第二章 计算机中的数制和码.ppt
第二章 计算机中的数制和码制 计算机中的数制和码制 (假设编程人员的角度) 假设
20122013-2第二章计算机中的数制和码制2012.08.18(第八....ppt
20122013-2第二章计算机中的数制和码制2012.08.18(第八稿)_理
新第2章微型计算机的数制和编码.ppt
第2章微型计算机的数制和编码 - 本章内容 ? 数制的基本概念 ? 二、十进制
第2次课 2-计算机中的数制和码.ppt
第二章 计算机中的数制和码制 2.1数与数制 一、数的表示方法与数制 二、数制之
第二章计算机中的数制和码制2011.02.20_图文.ppt
第二章计算机中的数制和码制2011.02.20_IT/计算机_专业资料。微机原理
第2章 计算机中的数制与编码_图文.ppt
第2章 计算机中的数制与编码 - 第二章 计算机中的数制与编码 数制 表示 数据
微机原理与接口 第2章计算机中的数制及编码.ppt
码的概念以及数的定点与浮点表示法。 2 第2章 计算机中的数制和编码 第2章 .
(大学计算机)第4章 数制和信息编码_图文.ppt
(大学计算机)第4章 数制和信息编码_工学_高等教育...二进制转换 西文 ASCII 码 汉字 输入码/机内码转换...0B9H 第2章 计算机系统组成 不同进位计数制...
第2章 计算机中数制和编码_图文.ppt
第2章 计算机中数制和编码 - 第2章 计算机中数制和编码 主要内容: ? 无符号数的表示和运算 ? 带符号数的表示和运算 ? 信息编码 2.1 无符号数的表示和...
第1章、第2章 系统导论及数制码制_图文.ppt
第1章、第2章 系统导论及数制码制_IT/计算机_专业资料。第1章 微型计算机基础 章 1.1 概述 1.2 微型计算机系统组成 1.3 微型计算机的工作过程 1.1 概述 ...
第2章计算机中的数制和编码(2)_图文.ppt
第2章计算机中的数制和编码(2) - 第2章 计算机中的数制和编码 2.2.4
第02章 计算机中的数制和编码_图文.ppt
第02章 计算机中的数制和编码 - 第2 章 计算机中的数制和编码 主要内容 ?
更多相关标签: