当前位置:首页 >> >>

第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)



相关文章:
01章数制与码制复习题
01章数制与码制复习题_IT/计算机_专业资料。逻辑电路资料1 数制和码制 193 多选题 {1A13}16-18000 1. 下列BCD码中有权码有( ). A.8421BCD B.余3BCD ...
微机原理第2章练习题及答案
第2章 一、自测练习题 计算机中的数制和编码 ( ㈠ 选择题 1.在计算机内部,一切信息的存取、处理和传送都是以( )形式进行的。 A.BCD 码 B.ASCII 码 C.十...
数制与码制(听课笔记)
数制与码制(听课笔记)_电脑基础知识_IT/计算机_专业资料。详细的讲解了数制与码...第2章 数制与码制(2) 47页 免费 第一章数制与码制M 61页 免费 单片机数制...
计算机公共基础教案第27节计算机内的数制和码制
2 10-11 学年 第一 学期 单元、章节:第七章第二节 教学重点、难点:重点: 计算机内采用的进制 数制的概念及数码、数位、基数、位权等概念 西文字符和汉字的...
计算机中的数制与编码
1/2 相关文档推荐 第2章 计算机中的数制与编... 36页 5财富值 第2章 ...计算机中的数制与编码一、数制 1、什么是进位计数制 数制也称计数制,是指用一...
第1章 数制与编码
第1章 数制与码制以及逻辑... 8页 免费 第1章数制与码制 16页 1财富值 计算机中的数制与编码 6页 1财富值 01数制与码制(数字电子技术... 14页 2财富...
第一章 数制与码制及C表达式
第一章 数制与码制及C表达式_工学_高等教育_教育专区。大学计算机基础及 C 程序...在下面的表达式中正确的打勾,存在错误的简要说明错误原因。 A . char ch; c...
计算机中的数制和编码
第2章计算机中的数制与码制... 40页 免费 计算机中的数制与编码(修改... ...A.二进制数 B.十六进制数 C.二进制编码的十进制数 D.不带符号数的二进制...
微机原教案(1-34)OK
第3页 第二数制和码制 基本要求:熟悉并掌握计算机中信息的表示方法,熟练掌握各数制,码制间的转换 基本要求 基本内容:1、无符号数的表示方法及运算主要是十...
大学计算机基础第二章总结
数:计算机的数据的基本形态是二进制数制:可以直接进行数学计算 数字 码制:用来表示不同对象属性 ● 数制(计数体制) 数制(计数体制)多位数中每一位的构成方法...
更多相关标签: