微机原理 数制

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例:计算BCD码 38-29=? 计算 码 ? 0011 1000 - 0010 1001 0000 1111 - 0000 0110 0000 1001 38H - 29H 0FH - 06 9 低4位有半借位 调整 高4位未产生非 位有半借位-6调整 位有半借位 位未产生非 BCD且无借位不调整 且无借位不调整 结果: 结果:9
几点说明: 几点说明: 根据两数互为补的原理, ① 根据两数互为补的原理,对补码求补码就可以得到其 原码,将原码的符号位变为正、负号, 原码,将原码的符号位变为正、负号,即是它的真值 例如求补码数FAH的真值 因为FAH FAH为负数求补码 例如求补码数FAH的真值 。因为FAH为负数求补码 FAH [FAH]补 86H=[FAH]补=86H=-6 例如求补码数78H的真值 因为78H 78H为正数求补码 例如求补码数78H的真值 。因为78H为正数求补码 [78H] 78H 补=78H=+120 一个用补码表示的机器数,若最高位为0 ② 一个用补码表示的机器数,若最高位为0,则其余几位 即为此数的绝对值;若最高位为1 即为此数的绝对值;若最高位为1,其余几位不是此数 的绝对值,必须把该数求补(按位取反(包括符号位) 的绝对值,必须把该数求补(按位取反(包括符号位) ),才得到它的绝对值 才得到它的绝对值。 X=- [-15]补 加1),才得到它的绝对值。如:X=-15 [-15]补=F1H =11110001B 求补得00001110+ 求补得00001110+1=00001111B=15 00001110
3 计算机中的有符号数的表示
有符号数有原码、反码和补码三种表示法。 有符号数有原码、反码和补码三种表示法。 原码 三种表示法 1.原码 1.原码 数值部分用其绝对值, 数值部分用其绝对值,正数的符号位用 “0”表示,负数的符号位用“1”表示。如: 表示,负数的符号位用“ 表示。 表示 表示 X1=+ X1=+5 X2=-5 [X1]原 [X1]原=00000101B [X2 [X2]原=10000101B 0000101B
十六进制数和十进制数间的相互转换 将十六进制数按权展开相加, 将十六进制数按权展开相加,如:
1F3DH=163×1+162×15+161×3+160×13 + + + =4096×1+256×15+16×3+1×13 × + × + × + × =4096+3840+48+ =4096+3840+48+13=7997
1 计算机中的数
计算机中的数字电路具有两种不同的稳定状态且能相互 转换,即“0”和“1”两种状态。计算机处理的一切信息 转换, 和 两种状态。 两种状态 均用二进制数表示,但是二进制数书写起来太长, 均用二进制数表示,但是二进制数书写起来太长,所以 微型计算机中的二进制数都采用十六进制来缩写。 微型计算机中的二进制数都采用十六进制来缩写。十六 进制数用0 进制数用0~9、A~F等16个数码表示十进制数0~15。 16个数码表示十进制数0 15。 个数码表示十进制数 为了区别十进制数、二进制数及十六进制数3种数制, 为了区别十进制数、二进制数及十六进制数3种数制, 在数的后面加一个字母以进行区别。 在数的后面加一个字母以进行区别。用B(binary)表示 binary) 二进制数制; 二进制数制;D(decimal)或不带字母表示十进制数制; decimal)或不带字母表示十进制数制; H(hexadecimal)表示十六进制数制。 hexadecimal)表示十六进制数制。
快速求法:将负数原码的最前面的1和最后一个 和最后一个1之间的每一位 ① 快速求法:将负数原码的最前面的 和最后一个 之间的每一位 取反。 取反。例如 x=-4: [x]原 = 10000100 : 原
取反
[x]补 = 11111100=FCH取反 补 取反
两数互补是针对一定的“ 而言, ② 两数互补是针对一定的“模”而言,“模”即计数系统的过量 程回零值,例如时钟以 为模 为模( 点也称 点也称0点),4和 互补 互补, 程回零值,例如时钟以12为模(12点也称 点), 和8互补, 一位十进制数3和 互补 因为3+ = ,个位回零,模为10 互补( 一位十进制数 和7互补(因为 +7=10,个位回零,模为 1= 10),两位十进制数35和65互补(因为 +67=100,十进制 ),两位十进制数 和 互补 因为35+ = 互补( ),两位十进制数 , 数两位回零,模为 ),而对于 位二进制数, 数两位回零,模为102=100),而对于 位二进制数,模为 8= ),而对于8位二进制数 模为2 同理16位二进制数 100000000B=100H,同理 位二进制数,模为 16=10000H由此 同理 位二进制数,模为2 由此 得出求补的通用方法:一个数的补数= 得出求补的通用方法:一个数的补数=模-该数,这里补数是 该数, 对任意的数而言,包括正、负数。 对任意的数而言,包括正、负数。而补码是针对符号机器数而 言。
取反
= FBH
(3)补码 (3)补码 正数的补码与原码相同;负数补码为其反码加1 正数的补码与原码相同;负数补码为其反码加1。 位补码机器数: 例:求 8位补码机器数: x1=+4 : [x1] 原 =[x1] 反 =[x1] 补 = 00000100=04H
x2= - 4: [x2]原 = 10000100 原 : [x2]反 = 11111011 反 [x2]补 = [x2]反+1= 1111100=FCH 补 反
十进制整数转换为十六进制数可用出16取余法, 十进制整数转换为十六进制数可用出 取余法, 取余法 即用16不断地去除待转换的十进制数 不断地去除待转换的十进制数, 即用 不断地去除待转换的十进制数,直至商等于 0为止。将所得的各次余数,依倒叙排列,即可得 为止。 为止 将所得的各次余数,依倒叙排列, 到所转换的十六进制数。如将38947 38947转换为十六进 到所转换的十六进制数。如将38947转换为十六进 制数,其方法及算式如下: 制数,其方法及算式如下:
1111111000111B→1 1111 1100 0111B→ → 0001 1111Байду номын сангаас1100 0111B=1FC7H =
十六进制数转换二进制数,只需用4 十六进制数转换二进制数,只需用4位二进制数代 位十六进制数即可。 替1位十六进制数即可。 如:3AB9H=0011 1010 1011 1001B
即38947=9823H
2 计算机中数的几个概念
1.机器数与真值 1.机器数与真值 机器数:机器中数的表示形式,它将数的正、 机器数:机器中数的表示形式,它将数的正、 负符号和数值部分一起进行二进制编码, 负符号和数值部分一起进行二进制编码,其 位数通常为8的整数倍。 位数通常为8的整数倍。 真值: 真值:机器数所代表的实际数值的正负和大 是人们习惯表示的数。 小,是人们习惯表示的数。
表0-2 BCD编码表 编码表
0.2.6 BCD码的运算 BCD码的运算
BCD码运算应该得到 码运算应该得到BCD码结果,由于计算机是按二进制运算,结果 码结果, 码运算应该得到 码结果 由于计算机是按二进制运算, 不为BCD码,因此要进行十进制调整。调整方法为:当计算结果有非 码 因此要进行十进制调整。调整方法为: 不为 BCD码或产生进位 借位时,加法进行 +6、减法进行 -6 调整运算。 码或产生进位/借位时, 、 调整运算。 码或产生进位 借位时 例:计算BCD码 78+69=? 计算 码 ? 0111 1000 + 0110 1001 1110 0001 + 0110 0110 1 0100 0111 78H + 69H E1H………不调整,结果为二进制 不调整, 不调整 + 66H………调整, 高4位产生非 调整, 位产生非BCD码+6,和低4位有半 码 ,和低 位有半 调整 位产生非 进位+6 进位 147 调整结果: 带进位一起) 调整结果:147 (带进位一起)为十进制结果
结果相同,其真值为 )。由于数的八位限制 结果相同,其真值为36H(=54)。由于数的八位限制,最高位的进位 ( )。由于数的八位限制, 是自然丢失的(再计算机中。进位被存放在进位标志CY中的。)用补 中的。) 是自然丢失的(再计算机中。进位被存放在进位标志 中的。)用补 码表示后,减法均可以用补码相加完成。因此,在微机中,凡是符号数 码表示后,减法均可以用补码相加完成。因此,在微机中, 一律是用补码表示的。用加法器完成加、减运算, 一律是用补码表示的。用加法器完成加、减运算,用加法器和移位寄存 器完成乘、除运算,简化计算机硬件结构。 器完成乘、除运算,简化计算机硬件结构。
符号位
原码表示简单易懂, 原码表示简单易懂,而且与真值的转换方 但若是两个异号数相加, 便 。 但若是两个异号数相加 , 或两个同 号数相减, 就要做减法。 号数相减 , 就要做减法 。 为了把减运算 转换为加运算, 从而简化计算机的结构 , 转换为加运算 , 从而简化计算机的结构, 就引进了反码和补码。 就引进了反码和补码。
设有原码机器数X, 设有原码机器数X, X>0, [X]补=[X]原 [X]补=[X]原
X<0, [X]补 当 X<0, [X]补= 模-|X| 例如对于八位二进制数: 例如对于八位二进制数: x1=+4: [x1]补= 00000100=04H; x1=+4: [x1]补 00000100=04H; [x2]补 100Hx2= - 4: [x2]补 = 100H-4=FCH 对于16二进制位数: 对于16二进制位数: 16二进制位数 x2=+4: [x2]补 0004H; x2=+4: [x2]补= 0004H; [x2]补 10000Hx2= -4: [x2]补 = 10000H-4=FFFCH
表0-1 不同进位记数制对照表
二进制数和十六进制数间的相互转换 将二进制数从右(最低位)向左每4位为1 将二进制数从右(最低位)向左每4位为1组分 若最后一组不足4 则在其左边添加0 组,若最后一组不足4位,则在其左边添加0,以 凑成4 每组用1位十六进制数表示。 凑成4位,每组用1位十六进制数表示。如:
(2)反码 正数的反码与原码相同;负数反码: 正数的反码与原码相同;负数反码:符号位不 变, 数值部分按位取反。 数值部分按位取反。 位反码机器数: 例 求8位反码机器数: [x1]原 00000100B=[x1]反 x1= +4 [x1]原= 00000100B=[x1]反 =04H [x2 0000100B [x2 1111011B x2= -4 [x2]原= 10000100B [x2]反= 11111011B
当数采用补码表示时,就可以把减法转换为加法。 ③ 当数采用补码表示时,就可以把减法转换为加法。 例1:64-10=64+(-10)=54 : [64]补=40H=0100 0000B 补 [10]补=0AH=0000 1010B 补 [-10]补=1111 0110B 补 做减法运算过程: 做减法运算过程: 用补码相加过程
例2: 34-68=34+(-68)=-34 = 34=22H=0010 0010B 68=44H=0100 0100B [-68]补=1011 1100B 补 做减运算过程: 做减运算过程: 用补码相加过程: 用补码相加过程:
结果相同。因为符号位为 ,对其求补,得其真值: 结果相同。因为符号位为1,对其求补,得其真值:-00100010B,即为 ,即为-34 (-22H)。 )。 由上面两个例子还可以看出, 由上面两个例子还可以看出, 1)用补码相加完成两数相减,相减若无借位,化为补码相加就会有进位; 用补码相加完成两数相减,相减若无借位,化为补码相加就会有进位; 用补码相加完成两数相减 相减若有借位,化作补码相加就不会有进位。 相减若有借位,化作补码相加就不会有进位。 2)补码运算后的结果为补码,需再次求补才能得到运算结果的真值。 补码运算后的结果为补码,需再次求补才能得到运算结果的真值。 补码运算后的结果为补码
相关文档
最新文档