2019/9/8 。2十进制最转换成二进铜数 1)。整致部分的装换 除以基数(2)服余慰,先为低位(⑧,后为高位 下面通过一个简单的例子对转换方法进行分析。例如, 显然,该方法也适用于将十进制接数转换为八进制整激 13D=1101B=1×23+1×22+0×2+1×29 (基数为8)、十六进刺整藏(基数为16)以至其它在何进制 B,B:B,BB BBB 整数。 可见,要确定13D对应的二进制数,只需从右到左分确 定Bo,B,B2B即可. 21 22 、 2)小数部分的装换 例如, 小数部分乘以盖数(2)取整数(0或),先为高位(B,)后为 0.75D=0.1 1B=1×2-1+1×2-3 低位。 B.B:B-1 B3 显然,该方法也适用于将十进例小数转换为八进制小敷(基 数为8)、十六进制小敷(基敷为16)以至其它任何进制小数。 23 24 6
2019/9/8 6 2. 十进制数转换成二进制数 1).整数部分的转换 下面通过一个简单的例子对转换方法进行分析。例如, B3 B2 B1 B0 B3 B2 B1 B0 13 1 1 0 1 1 2 1 2 0 2 1 2 3 2 1 0 D B 可见,要确定13D对应的二进制数,只需从右到左分别确 定 B0 ,B1 ,B2 ,B3.即可。 21 除以基数(2)取余数,先为低位(B0 )后为高位 显然,该方法也适用于将十进制整数转换为八进制整数 (基数为8)、十六进制整数(基数为16)以至其它任何进制 整数。 22 2) 小数部分的转换 例如, B-1 B-2 B-1 B-2 1 2 0.75 0.1 1 1 2 1 2 D B 23 小数部分乘以基数(2)取整数(0或1),先为高位(B-1)后为 低位。 显然,该方法也适用于将十进制小数转换为八进制小数(基 数为8)、十六进制小数(基数为16)以至其它任何进制小数。24 21 22 23 24
2019/9/8 3。二进制数与十六进微之间的装换 因为2-16,即可用四位二进制数表示一位十六进制数,所 (三)二进制数的运算 以可得到如下述的二进制嫩与十大进制数之闻的转换方法。 1.二进制数的算术运算 将二进制数转换为十大进削激的方法:以小数点为界,向左 (1)加:0+0=00+1=11+0=11+1=0(进1) (整数部分)年四位为一组,高位不足4位时补0:向右(小数部 分)每四位为一组,低位不足4位时补0。然后分别用一个16进制 2)减0-0=01-1-010-10-1=1(借位) 数表示每一组中的4位二进制数。 3)乘:0x0-00x1=01×0=-01x1=1 将十大进制嫩转换为二进制嫩的方法:直接将每一位十大进 (④除:二进制除法是乘法的逆运算, 制数写成其对应的四位二进制数。 9 26 米2二进制最的混辑运填 (3)非*运算(N0T) 变量的“非”起算皓果用衰示。是舞“非”运算规则如下: 0n-00n1-010-01A1- 0=1 ī=0 只有当两个变量地为“"1“时,“与”的蜡果才为“1“, (4)异成”运算(KOR) (2)“求”运算(0R) “异戒”滋算可用符丹“”老示。据算领刚如下 “或”起算又称加,可用符“”成“+“表示。起算 0∀0=00∀1=11V0=111=0 则如下: -w1-110-11v-1 可以量出,两变透只要不用,"异取”运掌的的果城为"怎 两个变量只要有一个为“1“,"或”的蜡果蒙为“1 27 1
2019/9/8 7 3.二进制数与十六进制数之间的转换 因为2 4=16,即可用四位二进制数表示一位十六进制数,所 以可得到如下所述的二进制数与十六进制数之间的转换方法。 将二进制数转换为十六进制数的方法:以小数点为界,向左 (整数部分)每四位为一组,高位不足4位时补0;向右(小数部 分)每四位为一组,低位不足4位时补0。然后分别用一个16进制 数表示每一组中的4位二进制数。 将十六进制数转换为二进制数的方法:直接将每一位十六进 制数写成其对应的四位二进制数。 25 (三) 二进制数的运算 1. 二进制数的算术运算 (1) 加: 0+0=0 0+1=1 1+0=1 1+1=0(进1) (2) 减: 0-0=0 1-1=0 1-0=1 0-1=1(借位) (3) 乘: 00=0 01=0 10=0 11=1 (4) 除: 二进制除法是乘法的逆运算。 26 2. 二进制数的逻辑运算 (1) “与“运算(AND). “与”运算又称逻辑乘,可用符号“” 或“”表示。运算规则如下: 00=0 01=0 10=0 11=1 只有当两个变量均为“1”时,“与”的结果才为“1”。 (2) “或”运算(OR) “或”运算又称逻辑加,可用符号“”或“+”表示。运算规 则如下: 00=0 01=1 10=1 11=1 两个变量只要有一个为“1”,“或”的结果就为“1”。 27 (3) “非”运算(NOT) 变量的“非”运算结果用表示。逻辑“非”运算规则如下: (4) “异或”运算(XOR) “异或”运算可用符号“ ”表示。运算规则如下: 可以看出,两变量只要不同,“异或”运算的结果就为“1”。 0 1 1 0 00 0 01 1 10 1 11 0 28 25 26 27 28
2019/9/8 二、带符号数的表示与运算 例A=11110101B,B=00110000B,求 (一)机服数与真值 AAB=?AvB=?AVB=?4=?B=? 为了区别正数和负数,通常用二进制数的最高位表示数的 符号。对于一个字节型二进制数来说,D,位为符号位,D。一D 位为敷值位。在符号位中,规定用“0”表示正,“1“表示负, 10i0▣ 而教值位表示该数的数值大小, 00110000 把一个数及其符号位在机器中的一组二进制数表示形式, 称为“机器数”,机器数所表示的值称为该机器数的“真值”。 30 人 (二)机器数的表示方法 例如,当机器字长=8时, 1原码 +0.=00000000B -02”740(定义计算,下)=10000000E 设数的腻码记作心g,如机幕字长为,则原离定义如下, +81R-00001000B I-81=248=10001000B x 0≤x≤2-1 +127-0111111B H272+127=11111111B [原= 当机舞字长=16时, 2+x -(2-1)≤x≤0 I+01.=0000000000000000B -0-25+0=1000000000000000B 在原科表示法中,最高位为符号位(正数为0,负数1), +81-0000000000001000B -8-215+8=1000000000001000B 其余数字位表示数的绝对值。 +3276710111111111111111Bk3276712+32767-11111111111B 32 8
2019/9/8 8 例 A=11110101B, B=00110000B,求 A B ? A B ? AB ? A ? B ? 1 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 29 二、带符号数的表示与运算 (一) 机器数与真值 为了区别正数和负数,通常用二进制数的最高位表示数的 符号。对于一个字节型二进制数来说,D7 位为符号位,D6D0 位为数值位。在符号位中,规定用“0”表示正,“1”表示负, 而数值位表示该数的数值大小。 把一个数及其符号位在机器中的一组二进制数表示形式, 称为“机器数”。机器数所表示的值称为该机器数的“真值”。 30 (二) 机器数的表示方法 1. 原码 设数x的原码记作[x] 原,如机器字长为n,则原码定义如下: 2 | | (2 1) 0 0 2 1 [ ] 1 1 1 x x x x x n n n 原 在原码表示法中,最高位为符号位(正数为0,负数为1), 其余数字位表示数的绝对值。 31 例如,当机器字长n=8时, [+0]原=00000000B [-0]原=27+0(按定义计算,下同)=10000000B [+8]原=00001000B [-8]原=27+8=10001000B [+127]原=01111111B [-127]原=27+127=11111111B 当机器字长n=16时, [+0]原=0000000000000000B [-0]原=215+0=1000000000000000B [+8]原=0000000000001000B [-8]原=215+8=1000000000001000B [+32767]原=0111111111111111B [-32767]原=215+32767=1111111111111111B 32 29 30 31 32
2019/9/8 年 多位二法原来示减的有调为721化二进制我示 的范圆为-32767+32762*0矿的累离有两种表示法:00000000表示+0, 10000000表示4, 设数的反码记作r反,如机器字长为m,则反码定义如下 原网表示法简单直瑰,且与真值的转执根方使,但不根于在计算机中 0sx≤2m-4-1 进行加被运算。如进行两兼相加,色先判断两个数的符号是否相同。如 国= 2”-11x -(2"1-1)sxs0 果相同,则进行加法运算,否测进行减法运算。如进行两量相减,必比 较两兼的地对值大小,再由大数减小靴,结果的符母要和地对值大的教的 正兼的反两与其源网相同。如,当机牛长一8时 符号一意。按上述运算方法设计的算术远算电路很复来。因此,计城中 +01g-+0一00000000B +127+127一0111111B 娜常使用补网进行加减运草这模城引入了反网夜示法和剂母我示选 当机每李长a-16时: +81+81k一0000000000001000B +127g-+127]g000000000111111B 34 3.补码 负数的反码是在原码基础上,符号位不变(仍为1),数值位 设数的补码记作#,如机器字长为m,则补码定义如下 按位取反。例如,当机幕宇长=8时: -0叫度=(21)-0=11111111B 0sxs2-1 卜-127度=2-1-127=10000000B 2"-x刘 -2-1sx<0 反码表示数的范圆是:8位二进制反表示数的花圆为 正数的补码与其原闯、反码相同。创如,当机警字长-8时: 山272Z,L6位二进谢反表示数的范.为27643276五: “0”的反码有两种表示法:00000000表示+0,11111111表示 当机鼻字长n-16时, +8W-+8图g-+8.一00M000000000100B +27第-+127产+127r0000000111B 35 9
2019/9/8 9 原码表示法简单直观,且与真值的转换很方便,但不便于在计算机中 进行加减运算。如进行两数相加,必须先判断两个数的符号是否相同。如 果相同,则进行加法运算,否则进行减法运算。如进行两数相减,必须比 较两数的绝对值大小,再由大数减小数,结果的符号要和绝对值大的数的 符号一致。按上述运算方法设计的算术运算电路很复杂。因此,计算机中 通常使用补码进行加减运算,这样就引入了反码表示法和补码表示法。 8位二进制原码表示数的范围为-127+127,16位二进制原码表示数 的范围为-32767+32767;“0”的原码有两种表示法:00000000表示+0, 10000000表示-0。 33 2. 反码 设数x的反码记作[x] 反,如机器字长为n,则反码定义如下: (2 1) | | (2 1) 0 0 2 1 [ ] 1 1 x x x x x n n n 反 正数的反码与其原码相同。例如,当机器字长n=8时: [+0]反=[+0]原=00000000B [+127]反=[+127]原=01111111B 当机器字长n=16时: [+8]反=[+8]原=0000000000001000B [+127]反=[+127]原=0000000001111111B 34 负数的反码是在原码基础上,符号位不变(仍为1),数值位 按位取反。例如,当机器字长n=8时: [-0]反=(28 -1)-0=11111111B [-127]反=(28 -1)-127=10000000B 反码表示数的范围是:8位二进制反码表示数的范围为 -127+127,16位二进制反码表示数的范围为-32767+32767; “0”的反码有两种表示法:00000000表示+0,11111111表示-0。35 3. 补码 设数x的补码记作[x] 补,如机器字长为n,则补码定义如下: 2 | | 2 0 0 2 1 [ ] 1 1 x x x x x n n n 补 正数的补码与其原码、反码相同。例如,当机器字长n=8时: [+8]补=[+8]反=[+8]原=00001000B [+127]补=[+127]反=[+127]原=01111111B 当机器字长n=16时: [+8]补=[+8]反=[+8]原=0000000000001000B [+127]补=[+127]反=[+127]原=0000000001111111B 36 33 34 35 36
2019/9/8 米 8位二进制数的原码、反码和补码表 负最的补网是在原网基破上,符号位不变(仍为),数值位按位取反,。 末位:或在反码蓝随上末位加1。例如,当机字长一S时 10001000B H21111111B -厦-111011B H271z-10000000B -81w-28-111000B 127-2127-10000001B 可B以看出,位一进盛示兼的花圆为山,16位二进补表 示数的范国为762762,8位二进鳞撒的腻到、反到和琳两如寝2.1所 蓝 37 省真值与补码之间的转换 2.反码转换为离值 一,原网转换为真值 要求反码的真值,只要先求出反码对应的原码,再按上述原 码转换为真值的方法即可求出其真值。 根据原码定义,将原码数值位各位按权展开求和,由符号 正数的原码是反码本身。 位决定数的正负即可由原码求出真值。 负数的原码可在反码基础上,符号位仍为1不变,数值位按 例已知[单-0001111B,以单=10011101B,求x利 位取反, x=+H0x26+0x25+1x2*+1x241x224+1x2+1×2=31 y=0x26+0x2541x2+x241×2240x21+1x20=-29 例已知rz0000111B,问度100101B,求和 39 40 10
2019/9/8 10 负数的补码是在原码基础上,符号位不变(仍为1),数值位按位取反, 末位加1;或在反码基础上末位加1。例如,当机器字长n=8时: [-8]原=10001000B [-127]原=11111111B [-8]反=11110111B [-127]反=10000000B [-8]补=2 8 -8=11111000B [-127]补=2 8 -127=10000001B 可以看出,8位二进制补码表示数的范围为-128+127,16位二进制补码表 示数的范围为-32768+32767。8位二进制数的原码、反码和补码如表2.1所 示。 37 8位二进制数的原码、反码和补码表 二进制数 无符号 十进制数 带 符 号 数 原码 反码 补码 0000 0000 0000 0001 0000 0010 0111 1110 0111 1111 1000 0000 1000 0001 1111 1101 1111 1110 1111 1111 0 1 2 126 127 128 129 253 254 255 +0+1+2 +126 +127 -0 -1 -125 -126 -127 +0+1+2 +126 +127 -127 -126 -2 -1 -0 +0+1+2 +126 +127 -128 -127 -3 -2 -1 38 (三) 真值与补码之间的转换 一.原码转换为真值 根据原码定义,将原码数值位各位按权展开求和,由符号 位决定数的正负即可由原码求出真值。 例 已知[x] 原=00011111B,[y] 原=10011101B,求x和y x=+(02 6+02 5+12 4+12 3+12 2+12 1+12 0 )=31 y=-(02 6+02 5+12 4+12 3+12 2+02 1+12 0 )=-29 39 2. 反码转换为真值 要求反码的真值,只要先求出反码对应的原码,再按上述原 码转换为真值的方法即可求出其真值。 正数的原码是反码本身。 负数的原码可在反码基础上,符号位仍为1不变,数值位按 位取反。 例 已知[x] 反=00001111B,[y] 反=11100101B,求x和y 40 37 38 39 40