软件设计师笔记Y---计组---(二)---定点数的运算

本文详细介绍了定点数的运算规则,包括算术移位和逻辑移位的区别,原码和补码加减法的运算过程,以及乘法和除法的算法。同时,讨论了奇偶校验码和CRC校验码的基本概念及其应用,旨在深入理解数字系统的内部运作和错误检测机制。
摘要由CSDN通过智能技术生成

1.定点数的移位运算
(1)算术移位
不同机器数算术移位后的空位添补规则

码制添补代码
正数原码、补码、反码0
负数原码0
负数反码1
负数补码左移添0,右移添1

(2)逻辑移位
规则:逻辑左移时,高位移丢,低位补0;逻辑右移时,低位移丢,高位添0
2.原码定点数的加减法
加法:先判断符号位,若相同,则绝对值相加,结果符号位不变;若不同,则做减法,绝对值大的数减去绝对值小的数,结果符号位与绝对值大的数相同。
减法:两个原码表示的数相减,首先将减数符号取反,然后将被减数与符号取反后的减数按原码加法进行运算。
运算时注意机器字长,当左边位出现溢出时,将溢出位丢掉
3.补码定点数的加减法运算
(1)参与运算的两个操作数均用补码表示
(2)按二进制运算规则运算,逢二进一
(3)符号位与数值位按同样规则一起参与运算,符号位运算产生的进位要丢掉,结果的符号位由运算得出
(4)补码加减运算依据下面的公式进行:

[A + B]=[A]+[B][A - B]=[A]+[-B]

(5)补码运算的结果也为补码。
eg:设机器字长为8位(含1位符号位),A=15,B=24,求[A+B]补和[A-B]补。
在这里插入图片描述4.定点数的乘法运算
(1)原码一位乘法
原码一位乘法的特点是符号位与数值位是分开求的,乘积符号由两个数的符号位异或形成,而乘积的数值部分则是两个数的绝对值相乘之积。(符号位不参与运算)
运算规则:
①被乘数和乘数均取绝对值参与运算
②部分积的长度同被乘数,取n+1位,一辩存放乘法过程中绝对值大于1的值,初值为0
③从乘数的最低位开始判断,若最低位为1,则部分积加上被乘数,然后右移一位;若最低位为0,则部分积加上0,然后右移一位
原码一位乘法运算过程中的右操作均为逻辑右移。
考虑到运算时可能出现绝对值大于1的情况(但此刻并非溢出),所以部分积和被乘数取双符号位
eg:设机器字长为5位(含1位符号位,n=4),x=-0.1101,y=0.1011,采用原码一位乘法求x*y
在这里插入图片描述(2)补码一位乘法(Booth算法)
设[x]补=Xs.X1X2 Xn,[y]补=Ys.Y1Y2 Yn,则运算规则如下
①符号位参与运算,运算的数均以补码表示。
②被乘数一般取双符号位参与运算,部分积取双符号位,初值为0,乘数可取单符号位。③乘数末位增设附加位Y(n+1),且初值为0。
④根据(Yn,Y(n+1))的取值来确定操作,见下表

Yn高位Y(n+1)操作
00部分积右移一位
01部分积加[x]补,右移一位
10部分积加[-x]补,右移一位
11部分积右移一位

⑤移位按补码右移规则进行。
⑥按照上述算法进行n+1步操作,但第n+1步不再移位(共进行n+1次累加和n次右移),仅根Yn与Y(n+1)的比较结果做相应的运算。
eg:设机器字长为5位(含1位符号位,n=4),x=-0.1101,y=0.1011,采取Booth算法求x*y
[x]补=11.0011,[-x]补=00.1101,[y]补=0.1011
在这里插入图片描述补码的右移:符号位不动,数值位右移,正数右移补0,负数右移补1,符号位是啥补啥(正补0负补1)
5.定点数的除法运算
(1)原码除法运算(不恢复余数法)
原码除法主要采用原码不恢复余数法,也称原码加减交替除法。特点是商符和商值是分开进行的,商符由两个操作数的符号位“异或”形成。求商值的规则如下。
设被除数[x]原=Xs.X1X2…Xn,除数[y]原=Ys.Y1Y2…Yn,则商的符号:Qs=Xs⊕Ys
2) 商的数值:|Q|=|X|/|Y|。
求|Q|的不恢复余数法运算规则如下。
①符号位不参加运算。
②先用被除数减去除数(|X|-|Y|=|X|+(-|Y|)=|X|+[-|Y|]补),当余数为正时,商上1,余数和商左移一位,再减去除数;当余数为负时,商上0,余数和商左移一位,再加上除数。
③当第n+1步余数为负时,需加上|Y|得到第n+1步正确的余数(余数与被除数同号)。
eg:设机器字长为5位(含1位符号位,n=4),x=0.1011,y=0.1101,采用原码加减交替除法求x/y
|x|=0.1011,|y|=0.1101,[|y|补]=0.1101,[-|y|]补=1.0011
在这里插入图片描述(2)补码除法运算(加减交替法)
补码一位除法的特点是,符号位与数值位一起参加运算,商符自然形成。除法第一步根据被除数和除数的符号决定是做加法还是减法;上商的原则根据余数和除数的符号位共同决定,同号上商“1”,异号上商“0”;最后一步商恒置“1”
加减交替法的规则如下:
①符号位参加运算,除数与被除数均用补码表示,商和余数也用补码表示。
②若被除数与除数同号,则被除数减去除数;若被除数与除数异号,则被除数加上除数。
③ 若余数与除数同号,则商上 1,余数左移一位减去除数;若余数与除数异号,则商上0,余数左移一位加上除数。
④重复执行第3步操作n次。
⑤ 若对商的精度没有特殊要求,则一般采用“末位恒置 1”法。
eg:设机器字长为5位(含1位符号位,n=4),x=0.1000,y=-0.1011,采用补码加减交替法求x/y
在这里插入图片描述6.校验码
(1)奇偶校验码
奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的错码。它有n-1位信息元和1位校验元组成,如果是奇校验码,那么在附加一个校验元后, 码长为n的码字中“1”的个数为奇数;如果是偶校验码,那么在附加一个校验元以后,码长为 n 的码字中“1”的个数为偶数。它只能检测奇数位的出错情况,但并不知道哪些位错了,也不能发现偶数位的出错情况。
(2)循环冗余码CRC
规则:①选定G(x),根据多项式和二进制得到除数以及最高阶r;
②在信息码M(x),后面附加r位个0得到M’(x);
③用模2除法求M’(x)/G(x)的余数,此余数是冗余码(余数必须比除数少一位,不够补0);
④将所得的冗余码附加在原信息码M(x)后,即为要发送的信息码;
⑤接收方将收到的数据除以除数G(x),如果余数为0,则数据正确。
eg:准备发送的数码信息码为1101,生成多项式采用G(x)=x⁴+x+1,计算CRC最终发送的信息码。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值