4.移位计算,乘除法运算

编程入门 行业动态 更新时间:2024-10-26 17:21:26

4.移位计算,乘<a href=https://www.elefans.com/category/jswz/34/1768707.html style=除法运算"/>

4.移位计算,乘除法运算

目录

一. 移位计算

(1)算数移位

(2)逻辑移位

(3)循环移位

二. 乘法运算

(1)原码的乘法运算

(2)补码的乘法运算

三. 除法运算

(1)原码的除法运算

(2)补码的除法运算

四. C语言中的类型转换

五. 数据的存储和排列

(1)大小端模式

(2)边界对齐


一. 移位计算

(1)算数移位

移位:通过改变各个数码位和小数点的相对位置,从而改变各数码位的位权。可用移位运算实现乘法、除法。

r进制,右移k位小数点,相当于乘以,左移k位小数点,相当于除以。

a.原码的算数移位―—符号位保持不变,仅对数值位进行移位。

  • 右移:高位补0,低位舍弃。若舍弃的位=0,则相当于÷2;若舍弃的位不等于0,则会丢失精度。
  • 左移:低位补0,高位舍弃。若舍弃的位=0,则相当于×2;若舍弃的位不等于0,则会出现严重误差。

b.反码的算数移位

正数的反码与原码相同,因此对正数反码的移位运算也和原码相同。

  • 右移:高位补0,低位舍弃。左移:低位补0,高位舍弃。

负数的反码数值位与原码相反,因此负数反码的移位运算规则需要调整。

  • 右移:高位补1,低位舍弃。左移:低位补1,高位舍弃。

c.补码的算数移位

正数的补码与原码相同,因此对正数反码的移位运算也和原码相同。

  • 右移:高位补0,低位舍弃。左移:低位补0,高位舍弃。

负数补码=反码末位+1,导致反码最右边几个连续的1都因进位而变为0,直到进位碰到第一个0为止。(负数补码中,最右边的1及其右边同原码。最右边的1的左边同反码)

  • 右移(同反码):高位补1,低位舍弃。左移(同原码):低位补0,高位舍弃。

(2)逻辑移位

逻辑右移:高位补0,低位舍弃。逻辑左移:低位补0,高位舍弃。

(3)循环移位

二. 乘法运算

(1)原码的乘法运算

二进制的手算过程:

原码一位乘法:机器字长n+1,数值部分占n位。符号位通过异或确定;数值部分通过被乘数和乘数绝对值的n轮加法、移位完成根据当前乘数中参与运算的位确定(ACC)加什么。若当前运算位=1,则(ACC)+[|x|]原;若=0,则(ACC)+0。每轮加法后ACC、MQ的内容统一逻辑右移(ACC左边补零,MQ右面移除的位丢弃)。

已经确定的乘积,也叫部分积。

(2)补码的乘法运算

补码的乘法运算和原码极为类似,但有以下不同:

举例:

设机器字长为5位(含1位符号位,n=4) , x=-0.1101,y= +0.1011,采用Booth算法求x*y

x[补]=11.0011,[-x]补=00.1101,[y]补=0.1011
 

三. 除法运算

(1)原码的除法运算

设机器字长为5位(含1位符号位,n=4),x=0.1011,y=0.1101,采用原码恢复余数法求x/y,

x=0.1011,y=0.1101,[|y|]补=0.1101,[-|y|]补=1.0011
符号单独处理:符号位=被除数和除数的符号位取异或,数值位取绝对值进行除法计算。
实现方法:上商0/1,得到余数,余数末尾补0

左移n次,上商n+1次,最后一次上商余数不左移。

不恢复余数法:对恢复余数法的简化:

(2)补码的除法运算

设机器字长为5位(含1位符号位,n=4),x=+0.1000,y=-0.1011,采用补码加减交替除法求x/y。

[x]补=00.1000,[y]补=11.0101,[-y]补=00.1011

补码除法的规则:

  • 符号位参与运算,被除数/余数、除数采用双符号位;
  • 被除数和除数同号,则被除数减去除数。被除数和除数异号,则被除数加上除数;
  • 余数和除数同号,商1,余数左移一位减去除数;余数和除数异号,商0,余数左移一位加上除数。
  • 重复n次,末位商恒置1。

四. C语言中的类型转换

五. 数据的存储和排列

(1)大小端模式

大端方式:更容易人类理解;小端方式:更容易计算机实现读取。

(2)边界对齐

现代计算机通常是按字节编址,即每个字节对应1个地址,通常也支持按字、按半字、按字节寻址。假设存储字长为32位,则1个字=32bit,半字=16bit。每次访存只能读/写1个字:

更多推荐

4.移位计算,乘除法运算

本文发布于:2023-11-15 17:03:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1603169.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:除法

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!