计算机中数据表示与其运算
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
此可以说,当以12为模时,–4的补码为12+(–4),即为
+8例。如,n=8时
[+73] 补=01001001 [–73] 补=100001=10110111 [–1] 补=100001=11111111
[–127] 补=100001=10000001
用补码表示整数时可表示的数值范围
仍以n=8为例, 当X>0时,最大值为[X]补=01111111=+127; 当X<0时,绝对值最大为[X]补=10000000=-27=-128。所以8 位整数的表示范围是-128~+127。 数0的补码表示是唯一的,即
2)数据的小数点表示问题
有两种表示方法:定点表示法和浮点表示法。 (1) 定点表示法
约定计算机中所有数据的小数点位置是固定不变的。 该位置在设计计算机时已被隐含地规定,因此勿需再用任 何状态来明显表示小数点。这样的数被称为定点数,只能 处理定点数的计算机称为“定点机”。
数符 .
尾数
.
小数点位置 (隐含约定)
解: 2 18
………余0(K0)
29
………余1(K1)
24
………余0(K2)
22
………余0(K3)
2 1 ………余1(K4)
0
所以 (18)10=(10010)2
小数部分:乘基取整法
【例4-4】 将(0.8125)10转换成二进制数。 解: 0.8125
×2 1.6250 …………1(K-1)
×2 1.2500 …………1(K-2) ×2 0.5000 …………0(K-3) ×2 1.0000 …………1(K-4)
(3) 反码表示法
前已述及,利用“求反加1”的方法可以得到负数的补码。
如在上述方法中,只求反而不加1,就得到另一种机器数的表
示,这就是反码表示法。
反码定义为:
X
0≤X<2(n-1)
[X]反 = (2n―1)+X ―2(n-1)<X≤0 反码表示很少直接用于计算Biblioteka Baidu。反码主要被用作真值求
补码的一个过渡手段。
所以 (0.8125)10=(0.1101)2
(3)二进制数与八进制数的相互转换
二进制数转换成八进制数的方法可以概括为“三位并一位”; 八进制数转换成二进制数的方法可以概括为“一位拆三位”;
【例4-6】 将 (11101.1101)2转换成八进制数。 解: 0 1 1 1 0 1 . 1 1 0 1 0 0
到原来的十倍;如将某数的各位向右移动1位,则其值减少
到原来的十分之一。同样,在二进制中,如将数的各位向左
移动1位,则其值增大到原来的二倍;反之将数的各位向右
移动1位,则其值减少到原来的二分之一。例如,二进数
101011.1在左移1位或右移1位后,其值的变化如下:
二进数
值
101011.1
43.5
向左移1位
对于整数而言,若计算机字长为n位,则
X
0≤X<2n-1
[X]补=
2n+X –2n-1≤X<0
时钟为例,设当前时钟指向11点,而准确时间应为7点, 调整时间的方法有两种。一种方法是将时针倒拨4小时,即 11–4=7;另一种方法是将时针顺拨8小时,即 11+8=19=12+7=7。由此可见,在以12为模的系统中加8 和减4的效果是一样的,即(–4)=(+8)(Mod 12)。因
在移码表示中,真值“0”的表示是唯一的: [0] 移=100…00
移码在计算机中主要用于表示浮点数中的阶,所以通常 只使用整数。
原码、补码机、反码的共同特征: 如果真值为正,则这三种机器表示的最高位都为0; 如果真值为负,则这三种机器表示的最高位都为1。
移码表示时却正相反: 如果真值为正,则移码机器表示的最高位为1; 如果真值为负,则移码机器表示的最高位为0。
原码表示简单易懂,与真值转换方便,用于乘除运算十分 方便。
(2) 补码表示法
模的概念:“模”是指一个计量系统的计数范围。 例如:
时钟的模为12,计量范围是0~11。若时钟指向11,则再过1
小时,时钟将指向0(即12)。
n位计算机的模为2n,计量范围是0~2n-1。设n=4,模为
24=16,计量范围是0~15(二进制表示为0000~1111)。 若当前值是1111,则再加1,计数值就变为0000,而在最高 位上溢出了一个“1”。 任何有模的计量器,均可化减法为加法运算。只需把减数用 相应的补码表示就可将减法运算化为加法运算。
1010111.0
87
向右移1位
10101.11
21.75
2) 不同进位计数制之间的转换
转换所依据的原则是:如果两个数的值相等,则两数的整数 部分和小数部分的值一定分别相等。
(1) 二进制、八进制和十六进制数转换为十进制数。 任意R进制数转换成十进制数比较简单,只需按权展开然后相 加,其和便是相应的十进制数。这种方法称为按权相加法。 【例4-1】 求与(11011.01)2等值的十进数 解:(11011.01)2=1×24+1×23+0×22+1×21+1×20+0×21+1×2-2
r被称为阶(或阶码),表示数的因子中基数的幂次,即为小
数点的位置。
任何一个浮点数均由尾数和阶构成。尾数可正可负,同样 阶也可正可负,所以浮点数的格式为:
[0] 补=[+0] 补=[-0] 补=00000000
真值与补码简便转换方法
1. 对正数而言,补码与真值相同; 2. 对负数而言,符号位取1,其它各位取反、末位加1;
【例4-8】 求―36的补码。 解:第1步:将―36表示成二进制数 –
第2步:符号位取1,其余各位取反得 第3步:末位加1,结果为 所以 [–36]补 =11011100 【例4-9】 求[11110110]补的真值。 解:第1步:除符号位外,各位取反得 第2步:末位加1,结果为 所以 真值为(–0001010)2,即(–10)10
一般而言,对于用R进制表示的数N(R为任意正整数),可以 按权展开为: N=Kn×Rn+Kn-1×Rn-1+…+K1×R1+K0×R0+K-1×R-1+…+K-m×R-m = Ki×Ri 其中,Ki是0,1,…,(R-1)个数字中的任意一个,m、n是正整 数,R是基数。
表4.1列出了计算机中常用的四种进位计数制。其中十六进 制中的A,B,C,D,E,F分别相当于十进制中10,11,12,13,14,15 的值。
采用了补码表示法后,加法和减法统一成了加法运算, 可以大大简化计算机运算部件的电路设计,所以现代计算机 中都使用补码形式的机器数。
根据补码定义,可以证明 [X] 补+ [Y] 补= [X+Y] 补 [X] 补- [Y] 补= [X -Y] 补
这表明,两个补码加减的结果也是补码,而且在运算时, 符号位可同数值部分作为一个整体参加运算,如果符号位有 进位,则舍去进位。 【例4-10】 设a=4,b=6,请用补码求和方法计算(a―b)。 解:因为[a] 补=00000100,[―b] 补=11111010 且[a―b] 补=[a] 补+[―b] 补 =00000100+11111010 =11111110 所以 (a―b)= ―2
原码表示的规则是:最左边一位表示数的符号,且以“0” 表示正号,“1”表示负号;其余各位表示数的大小,即其绝 对值。 例如,假设机器数的位数是8,则 [+73]原=01001001 [–73] 原=11001001 [+127] 原=01111111 [–127] 原=11111111 对于真值0而言,可以被认为是+0,也可被认为是–0。[+0] =00000000,[–0] =10000000,所以数0的原码不唯一,有 “正零”和“负零”之分。
(2) 浮点表示法
浮点数:即数中小数点的位置不是固定不变的,而是可浮动 的。在科学计算中,可能同时涉及值很大和很小的数。这时, 要求计算机所表示的数,其小数点位置是可变的。
①浮点数的表示形式 任何一个二进制数可表示成:
m
(N)2 = ±2r×
Ni×2-I=±2r×M
i 1
M(尾数)表示了数的有效数字;
=16+8+0+1+0+0.25=(27.25)10 【例4-2】 将十六进制数35B转换成十进数. 解:(35B)16=3×162+5×161+11×160=768+80+11=(859)10
(2) 十进制数转换成二进制数、八进制或十六进制数 整数部分:除基取余法
【例4-3】 把18转换成二进制数。
进位制
二进制
八进制
十进制
十六进制
规则 基数 数符
权 形式表示
逢二进一 借一当二 R=2 0,1
2i B
逢八进一 借一当八 R=8
逢十进一 借一当十 R=10
逢十六进一 借一当十六 R=16
0,1,2,…,7 8i
0,1,2,…,9 10i
0,1,2,…,9 A,B,C,D,E, F
16i
O
D
H
在十进制中,如将某数的各位向左移动1位,则其值增大
表4.2列出了二、八、十、十六进制数之间的对应关系。
4.3.2 机器数
一个数在计算机内部表示成的二进制形式称为机器数,原 来的数称为这个机器数的真值。
机器数具有下列特点: (1) 由于计算机设备的限制,机器数有固定的位数,它所 表示的数受到计算机固有位数的限制,所以机器数具有一定的 范围,超过这个范围便会发生溢出。 (2) 机器数将其真值的符号数字化。计算机中使用具有两 个不同状态的电子器件,它们只能分别表示数字符号“0”和 “1”。所以,数的正负号也只能通过0和1来加以区分。通常, 用机器数中规定的符号位(一般是一个数的最高位)取0或1分 别表示其值的正或负。 (3) 机器数中依靠格式上的约定表示小数点的位置。
3)计算机中采用二进制的原因
(1)物理实现容易,(2)二进制运算简单,(3)机器可 靠性高,(4)通用性强
输入设备
输出设备
数值
十-二进制转换
英文
ASCII码
汉字
输入码-机内码转换
声音、图像 模数转换
内存
二-十进制转换 英文字形码 汉字字形码 数模转换
数值 英文 汉字 声音、图像
图4.25 各种数据在计算机中的转换过程
(4)移码表示法
对于n位整数,移码定义为 [X]移=2(n-1)+ X ―2(n-1)≤X<2(n-1) 即无论为正还是为负,都在符号位加“1” 或加2(n-1)。 例如,n=8时 [36] 移= 27 +00100100 =10100100 [―36] 移= 27 + 11011100 = 01011100
4.3.1 进位计数制
1) 进位计数制 任何一种计数制,都具有以下三个要点: (1) 数制使用的数码。十进制含10个数码:0~9; 二进制含2个数码:0,1等。 (2) 进位规则。十进制为逢十进一;二进制为逢二 进一等。 (3) 每一个数位上数码所具有的权。十进制数码各位 的权是以10为底的幂,二进制数码各位的权是以2为底的 幂。
3 5 64 所以 (11101.1101)2=(35.64)8
(4)二进制数与十六进制数的相互转换
二进制数转换成十六进制数的方法可以概括为“四位并一位” ; 十六进制数转换成二进制数的方法可以概括为“一位拆四位” ;
【例4-7】 将(25.C4)16转换成二进制数。 解: 2 5 . C 4
0010 0101 1100 0100 所以 (25.C4)16=(100101.110001)2
计算机进行数据处理时,首先要将相应的数据输入到 计算机中,并以一定的形式存储在计算机中。计算机内部 是一个二进制数字世界,所以,不管是数值数据还是非数 值数据,都必须转换成二进制数的形式,才能存入计算机 中。
数值数据 有确定的值并在数轴上有对应的点。 是非数值数据 非数值数据没有确定的值,如字符、文字、 图像、声音、逻辑数据等。
1)数据的符号表示问题
机器数在参与运算时,若将符号位和数值一起进行运算,
有时会产生错误的结果。例如,―6+4的结果应为―2,但按
上述方法,则运算如下:
10000110
―6的机器数
+ 00000100
4的机器数
10001010
结果为―10
常用的几种机器数符号表示方法:原码、补码、反码、移码。
(1) 原码表示法
例如,数828.8的值为 8×102+2×101+8×100+8×10-1
其中,102、101、100、10-1称为权。 对于任何一个十进数N,都可以表示成按权展开的多项式: N=dn×10n+dn-1×10n-1+…+d1×101+d0×100+d-1×101+…+d-m×10-m
= di×10i 其中,di是0—9十个数字中的任意一个,m、n是正整数, 10被称为十进制数的基数,它是相邻数位的权之比。
+8例。如,n=8时
[+73] 补=01001001 [–73] 补=100001=10110111 [–1] 补=100001=11111111
[–127] 补=100001=10000001
用补码表示整数时可表示的数值范围
仍以n=8为例, 当X>0时,最大值为[X]补=01111111=+127; 当X<0时,绝对值最大为[X]补=10000000=-27=-128。所以8 位整数的表示范围是-128~+127。 数0的补码表示是唯一的,即
2)数据的小数点表示问题
有两种表示方法:定点表示法和浮点表示法。 (1) 定点表示法
约定计算机中所有数据的小数点位置是固定不变的。 该位置在设计计算机时已被隐含地规定,因此勿需再用任 何状态来明显表示小数点。这样的数被称为定点数,只能 处理定点数的计算机称为“定点机”。
数符 .
尾数
.
小数点位置 (隐含约定)
解: 2 18
………余0(K0)
29
………余1(K1)
24
………余0(K2)
22
………余0(K3)
2 1 ………余1(K4)
0
所以 (18)10=(10010)2
小数部分:乘基取整法
【例4-4】 将(0.8125)10转换成二进制数。 解: 0.8125
×2 1.6250 …………1(K-1)
×2 1.2500 …………1(K-2) ×2 0.5000 …………0(K-3) ×2 1.0000 …………1(K-4)
(3) 反码表示法
前已述及,利用“求反加1”的方法可以得到负数的补码。
如在上述方法中,只求反而不加1,就得到另一种机器数的表
示,这就是反码表示法。
反码定义为:
X
0≤X<2(n-1)
[X]反 = (2n―1)+X ―2(n-1)<X≤0 反码表示很少直接用于计算Biblioteka Baidu。反码主要被用作真值求
补码的一个过渡手段。
所以 (0.8125)10=(0.1101)2
(3)二进制数与八进制数的相互转换
二进制数转换成八进制数的方法可以概括为“三位并一位”; 八进制数转换成二进制数的方法可以概括为“一位拆三位”;
【例4-6】 将 (11101.1101)2转换成八进制数。 解: 0 1 1 1 0 1 . 1 1 0 1 0 0
到原来的十倍;如将某数的各位向右移动1位,则其值减少
到原来的十分之一。同样,在二进制中,如将数的各位向左
移动1位,则其值增大到原来的二倍;反之将数的各位向右
移动1位,则其值减少到原来的二分之一。例如,二进数
101011.1在左移1位或右移1位后,其值的变化如下:
二进数
值
101011.1
43.5
向左移1位
对于整数而言,若计算机字长为n位,则
X
0≤X<2n-1
[X]补=
2n+X –2n-1≤X<0
时钟为例,设当前时钟指向11点,而准确时间应为7点, 调整时间的方法有两种。一种方法是将时针倒拨4小时,即 11–4=7;另一种方法是将时针顺拨8小时,即 11+8=19=12+7=7。由此可见,在以12为模的系统中加8 和减4的效果是一样的,即(–4)=(+8)(Mod 12)。因
在移码表示中,真值“0”的表示是唯一的: [0] 移=100…00
移码在计算机中主要用于表示浮点数中的阶,所以通常 只使用整数。
原码、补码机、反码的共同特征: 如果真值为正,则这三种机器表示的最高位都为0; 如果真值为负,则这三种机器表示的最高位都为1。
移码表示时却正相反: 如果真值为正,则移码机器表示的最高位为1; 如果真值为负,则移码机器表示的最高位为0。
原码表示简单易懂,与真值转换方便,用于乘除运算十分 方便。
(2) 补码表示法
模的概念:“模”是指一个计量系统的计数范围。 例如:
时钟的模为12,计量范围是0~11。若时钟指向11,则再过1
小时,时钟将指向0(即12)。
n位计算机的模为2n,计量范围是0~2n-1。设n=4,模为
24=16,计量范围是0~15(二进制表示为0000~1111)。 若当前值是1111,则再加1,计数值就变为0000,而在最高 位上溢出了一个“1”。 任何有模的计量器,均可化减法为加法运算。只需把减数用 相应的补码表示就可将减法运算化为加法运算。
1010111.0
87
向右移1位
10101.11
21.75
2) 不同进位计数制之间的转换
转换所依据的原则是:如果两个数的值相等,则两数的整数 部分和小数部分的值一定分别相等。
(1) 二进制、八进制和十六进制数转换为十进制数。 任意R进制数转换成十进制数比较简单,只需按权展开然后相 加,其和便是相应的十进制数。这种方法称为按权相加法。 【例4-1】 求与(11011.01)2等值的十进数 解:(11011.01)2=1×24+1×23+0×22+1×21+1×20+0×21+1×2-2
r被称为阶(或阶码),表示数的因子中基数的幂次,即为小
数点的位置。
任何一个浮点数均由尾数和阶构成。尾数可正可负,同样 阶也可正可负,所以浮点数的格式为:
[0] 补=[+0] 补=[-0] 补=00000000
真值与补码简便转换方法
1. 对正数而言,补码与真值相同; 2. 对负数而言,符号位取1,其它各位取反、末位加1;
【例4-8】 求―36的补码。 解:第1步:将―36表示成二进制数 –
第2步:符号位取1,其余各位取反得 第3步:末位加1,结果为 所以 [–36]补 =11011100 【例4-9】 求[11110110]补的真值。 解:第1步:除符号位外,各位取反得 第2步:末位加1,结果为 所以 真值为(–0001010)2,即(–10)10
一般而言,对于用R进制表示的数N(R为任意正整数),可以 按权展开为: N=Kn×Rn+Kn-1×Rn-1+…+K1×R1+K0×R0+K-1×R-1+…+K-m×R-m = Ki×Ri 其中,Ki是0,1,…,(R-1)个数字中的任意一个,m、n是正整 数,R是基数。
表4.1列出了计算机中常用的四种进位计数制。其中十六进 制中的A,B,C,D,E,F分别相当于十进制中10,11,12,13,14,15 的值。
采用了补码表示法后,加法和减法统一成了加法运算, 可以大大简化计算机运算部件的电路设计,所以现代计算机 中都使用补码形式的机器数。
根据补码定义,可以证明 [X] 补+ [Y] 补= [X+Y] 补 [X] 补- [Y] 补= [X -Y] 补
这表明,两个补码加减的结果也是补码,而且在运算时, 符号位可同数值部分作为一个整体参加运算,如果符号位有 进位,则舍去进位。 【例4-10】 设a=4,b=6,请用补码求和方法计算(a―b)。 解:因为[a] 补=00000100,[―b] 补=11111010 且[a―b] 补=[a] 补+[―b] 补 =00000100+11111010 =11111110 所以 (a―b)= ―2
原码表示的规则是:最左边一位表示数的符号,且以“0” 表示正号,“1”表示负号;其余各位表示数的大小,即其绝 对值。 例如,假设机器数的位数是8,则 [+73]原=01001001 [–73] 原=11001001 [+127] 原=01111111 [–127] 原=11111111 对于真值0而言,可以被认为是+0,也可被认为是–0。[+0] =00000000,[–0] =10000000,所以数0的原码不唯一,有 “正零”和“负零”之分。
(2) 浮点表示法
浮点数:即数中小数点的位置不是固定不变的,而是可浮动 的。在科学计算中,可能同时涉及值很大和很小的数。这时, 要求计算机所表示的数,其小数点位置是可变的。
①浮点数的表示形式 任何一个二进制数可表示成:
m
(N)2 = ±2r×
Ni×2-I=±2r×M
i 1
M(尾数)表示了数的有效数字;
=16+8+0+1+0+0.25=(27.25)10 【例4-2】 将十六进制数35B转换成十进数. 解:(35B)16=3×162+5×161+11×160=768+80+11=(859)10
(2) 十进制数转换成二进制数、八进制或十六进制数 整数部分:除基取余法
【例4-3】 把18转换成二进制数。
进位制
二进制
八进制
十进制
十六进制
规则 基数 数符
权 形式表示
逢二进一 借一当二 R=2 0,1
2i B
逢八进一 借一当八 R=8
逢十进一 借一当十 R=10
逢十六进一 借一当十六 R=16
0,1,2,…,7 8i
0,1,2,…,9 10i
0,1,2,…,9 A,B,C,D,E, F
16i
O
D
H
在十进制中,如将某数的各位向左移动1位,则其值增大
表4.2列出了二、八、十、十六进制数之间的对应关系。
4.3.2 机器数
一个数在计算机内部表示成的二进制形式称为机器数,原 来的数称为这个机器数的真值。
机器数具有下列特点: (1) 由于计算机设备的限制,机器数有固定的位数,它所 表示的数受到计算机固有位数的限制,所以机器数具有一定的 范围,超过这个范围便会发生溢出。 (2) 机器数将其真值的符号数字化。计算机中使用具有两 个不同状态的电子器件,它们只能分别表示数字符号“0”和 “1”。所以,数的正负号也只能通过0和1来加以区分。通常, 用机器数中规定的符号位(一般是一个数的最高位)取0或1分 别表示其值的正或负。 (3) 机器数中依靠格式上的约定表示小数点的位置。
3)计算机中采用二进制的原因
(1)物理实现容易,(2)二进制运算简单,(3)机器可 靠性高,(4)通用性强
输入设备
输出设备
数值
十-二进制转换
英文
ASCII码
汉字
输入码-机内码转换
声音、图像 模数转换
内存
二-十进制转换 英文字形码 汉字字形码 数模转换
数值 英文 汉字 声音、图像
图4.25 各种数据在计算机中的转换过程
(4)移码表示法
对于n位整数,移码定义为 [X]移=2(n-1)+ X ―2(n-1)≤X<2(n-1) 即无论为正还是为负,都在符号位加“1” 或加2(n-1)。 例如,n=8时 [36] 移= 27 +00100100 =10100100 [―36] 移= 27 + 11011100 = 01011100
4.3.1 进位计数制
1) 进位计数制 任何一种计数制,都具有以下三个要点: (1) 数制使用的数码。十进制含10个数码:0~9; 二进制含2个数码:0,1等。 (2) 进位规则。十进制为逢十进一;二进制为逢二 进一等。 (3) 每一个数位上数码所具有的权。十进制数码各位 的权是以10为底的幂,二进制数码各位的权是以2为底的 幂。
3 5 64 所以 (11101.1101)2=(35.64)8
(4)二进制数与十六进制数的相互转换
二进制数转换成十六进制数的方法可以概括为“四位并一位” ; 十六进制数转换成二进制数的方法可以概括为“一位拆四位” ;
【例4-7】 将(25.C4)16转换成二进制数。 解: 2 5 . C 4
0010 0101 1100 0100 所以 (25.C4)16=(100101.110001)2
计算机进行数据处理时,首先要将相应的数据输入到 计算机中,并以一定的形式存储在计算机中。计算机内部 是一个二进制数字世界,所以,不管是数值数据还是非数 值数据,都必须转换成二进制数的形式,才能存入计算机 中。
数值数据 有确定的值并在数轴上有对应的点。 是非数值数据 非数值数据没有确定的值,如字符、文字、 图像、声音、逻辑数据等。
1)数据的符号表示问题
机器数在参与运算时,若将符号位和数值一起进行运算,
有时会产生错误的结果。例如,―6+4的结果应为―2,但按
上述方法,则运算如下:
10000110
―6的机器数
+ 00000100
4的机器数
10001010
结果为―10
常用的几种机器数符号表示方法:原码、补码、反码、移码。
(1) 原码表示法
例如,数828.8的值为 8×102+2×101+8×100+8×10-1
其中,102、101、100、10-1称为权。 对于任何一个十进数N,都可以表示成按权展开的多项式: N=dn×10n+dn-1×10n-1+…+d1×101+d0×100+d-1×101+…+d-m×10-m
= di×10i 其中,di是0—9十个数字中的任意一个,m、n是正整数, 10被称为十进制数的基数,它是相邻数位的权之比。