《224_加减运算和溢出判断-精品文档资料整理.pdf》由会员分享,可在线阅读,更多相关《224_加减运算和溢出判断-精品文档资料整理.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2020/7/12王道考研/1本节内容王道考研/CSKAOYAN.COM加减运算&溢出判断1王道考研/CSKAOYAN.COM本节总览本节总览2公众号:考研拼课 配套课程请关注2020/7/12王道考研/2王道考研/CSKAOYAN.COM原码的加减运算原码的加减运算00001110+100011101001110014-14原码表示的有符号数0L00001110+1000111000001110-0000111000000000J加法器直接对原码进行加法运算,可能出错原码的加法运算:正+正绝对值做加法,结果为正负+负绝对值做加法,结果为负正+负绝对值大的减绝对值小的,符号同绝对值大的数负+正
2、绝对值大的减绝对值小的,符号同绝对值大的数原码的减法运算,“减数”符号取反,转变为加法:正-负正+正负-正负+负正-正正+负负+正负-负可能会溢出用减法器实现3王道考研/CSKAOYAN.COM补码的加减运算补码的加减运算设机器字长为8位(含1位符号位),A = 15,B = -24,求A+B补和AB补A = +1111B = -11000 0,0001111 1,0011000原码 0,0001111 1,1101000补码A+B补= A补+ B补= 0,0001111 + 1,1101000 = 1,1110111原码:1,0001001真值-9A-B补= A补+ -B补= 0,00011
3、11 + 0,0011000 = 0,0100111真值+39-B补: B补连同符号位一起取反加1C = 124,求A+C补和BC补A+C补= 0,0001111 + 0,1111100 = 1,0001011 真值-117BC补= 1,1101000 + 1,0000100 =0,1101100真值+108对于补码来说,无论加法还是减法,最后都会转变成加法,由加法器实现运算,符号位也参与运算负数补原:数值位取反+1;负数补码中,最右边的1及其右边同原码。最右边的1的左边同反码溢出4公众号:考研拼课 配套课程请关注2020/7/12王道考研/3王道考研/CSKAOYAN.COM溢出判断溢出判断
4、设机器字长为8位(含1位符号位),A = 15,B = -24,求A+B补和AB补C = 124,求A+C补和BC补A+C补= 0,0001111 + 0,1111100 = 1,0001011 真值-117BC补= 1,1101000 + 1,0000100 =0,1101100真值+108只有“正数+正数 ”才会上溢 正+正=负只有“负数+负数 ”才会下溢 负+负=正100 101 110 111 000 001 010 011-4 -3 -2 -1 0 1 2 35王道考研/CSKAOYAN.COM溢出判断溢出判断设机器字长为8位(含1位符号位),A = 15,B = -24,求A+B补
5、和AB补C = 124,求A+C补和BC补A+C补= 0,0001111 + 0,1111100 = 1,0001011 真值-117BC补= 1,1101000 + 1,0000100 =0,1101100真值+108方法一:采用一位符号位设A的符号为AS,B的符号为BS,运算结果的符号为SS,则溢出逻辑表达式为若V=0,表示无溢出;若V=1,表示有溢出。SSSSS S=V A B SA B S+逻辑表达式逻辑表达式与:如ABC,表示A与B与C仅当A、B、C均为1时,ABC为1A、B、C中有一个或多个为0,则ABC为0或:如A+B+C,表示A或B或C仅当A、B、C均为0时,A+B+C为0A、
6、B、C中有一个或多个为1,则A+B+C为1非:如 A ,表示A非若A为1,则 A 为0若A为0,则A 为1AS为1且BS为1且SS为0AS为0且BS为0且SS为1或6公众号:考研拼课 配套课程请关注2020/7/12王道考研/4王道考研/CSKAOYAN.COM溢出判断溢出判断设机器字长为8位(含1位符号位),A = 15,B = -24,求A+B补和AB补C = 124,求A+C补和BC补A+C补= 0,0001111 + 0,1111100 = 1,0001011 真值-117BC补= 1,1101000 + 1,0000100 =0,1101100真值+108方法二:采用一位符号位,根据
7、数据位进位情况判断溢出符号位的进位CS最高数值位的进位C1上溢01下溢10即: CS与C1不同时有溢出处理“不同”的逻辑符号:异或溢出逻辑判断表达式为V=CSC1若V=0,表示无溢出;V=1,表示有溢出。异或逻辑:不同为1,相同为00 0 = 00 1 = 11 0 = 11 1 = 0+C1Cs7王道考研/CSKAOYAN.COM溢出判断溢出判断设机器字长为8位(含1位符号位),A = 15,B = -24,求A+B补和AB补C = 124,求A+C补和BC补A+C补= 0,0001111 + 0,1111100 = 1,0001011 真值-117BC补= 1,1101000 + 1,00
8、00100 =0,1101100真值+108方法三:采用双符号位正数符号为00,负数符号为11A+C补= 00,0001111 + 00,1111100 = 01,0001011 上溢BC补= 11,1101000 + 11,0000100 = 10,1101100下溢记两个符号位为SS1SS2,则V=SS1SS2若V=0,表示无溢出;若V=1,表示有溢出。A+B补= 00,0001111 + 11,1101000 = 11,1110111A-B补= 00,0001111 + 00,0011000 = 00,0100111双符号位补码又称:模4补码单符号位补码又称:模2补码实际存储时只存储1个
9、符号位,运算时会复制一个符号位8公众号:考研拼课 配套课程请关注2020/7/12王道考研/5王道考研/CSKAOYAN.COM符号扩展符号扩展intlong,短数据长数据。多出来的那些位应该怎么填补?Eg:8位16位正整数(原、反、补码的表示都一样)0,1011010 0,00000000 1011010 1,00000000 1011010 1,11111111 0100101 1,11111111 0100110负整数:1,1011010原码:1,0100101反码:1,0100110补码:正小数(原、反、补码的表示都一样)0.1011010 0.1011010 00000000 1.1011010 00000000 1.0100101 11111111负小数:1.10110101.01001011.0100110 1.0100110 00000000定点整数的符号扩展:在原符号位和数值位中间添加新位,正数都添0;负数原码添0,负数反、补码添1定点小数的符号扩展:在原符号位和数值位后面添加新位,正数都添0;负数原、补码添0,负数反码添19王道考研/CSKAOYAN.COM知识点回顾知识点回顾注意 模4补码、模2补码的概念10公众号:考研拼课 配套课程请关注
限制150内