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

目录

一. 移位计算

(1)算数移位

(2)逻辑移位

(3)循环移位

二. 乘法运算

(1)原码的乘法运算

(2)补码的乘法运算

三. 除法运算

(1)原码的除法运算

(2)补码的除法运算

四. C语言中的类型转换

五. 数据的存储和排列

(1)大小端模式

(2)边界对齐


一. 移位计算

(1)算数移位

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

r进制,右移k位小数点,相当于乘以r^k,左移k位小数点,相当于除以r^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个字:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/124215.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringDataJpa(二)

三、Spring Data JPA概述 Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring D…

Python爬虫-获取汽车之家车家号

前言 本文是该专栏的第9篇,后面会持续分享python爬虫案例干货,记得关注。 地址:aHR0cHM6Ly9jaGVqaWFoYW8uYXV0b2hvbWUuY29tLmNuL0F1dGhvcnMjcHZhcmVhaWQ9MjgwODEwNA== 需求:获取汽车之家车家号数据 笔者将在正文中介绍详细的思路以及采集方法,废话不多说,跟着笔者直接往…

GPT-4V:AI在教育领域的应用

OpenAI于9月25日发布了最新的GPT-4V模型,为ChatGPT引入了语音和图像功能,为用户提供更多元化的使用方式。这次更新将为用户带来更便捷、直观的交互体验,用户可以直接拍照上传并针对照片内容提出问题。OpenAI的最终目标是构建安全、有益的人工…

React 其他常用Hooks

1. useImperativeHandle 在react中父组件可以通过forwardRef将ref转发到子组件;子组件拿到父组件创建的ref,绑定到自己的某个元素; forwardRef的做法本身没有什么问题,但是我们是将子组件的DOM直接暴露给了父组件,某下…

设计模式之组合模式-创建层次化的对象结构

目录 概述概念主要角色应用场景 组合模式的实现类图NS图基本代码组合模式的精髓意外收获(❀❀) 应用示例-公司组织架构管理需求结构图代码 组合模式的优缺点优点缺点 总结 概述 概念 组合模式是一种结构型设计模式,它允许将对象组合成树形结…

虚幻5.1 常见的效果关闭方式

常见的虚幻效果关闭方式 1.Bloom ProjectSettings->Rendering->Default Settings->Bloom PostProcessVolume->Lens->Bloom 2.Ambient Occlusion/Screen Space Ambient Occlusion(SSAO) ProjectSettings->Rendering->Default Settings->Ambient Occl…

服务器部署 Nacos 获取不到配置浏览器可以访问

服务器部署 Nacos 获取不到配置浏览器可以访问 📔 千寻简笔记介绍 千寻简笔记已开源,Gitee与GitHub搜索chihiro-notes,包含笔记源文件.md,以及PDF版本方便阅读,且是用了精美主题,阅读体验更佳&#xff0c…

基于springboot vue mysql的在线拍卖系统 全套代码 全套文档

基于SpringBoot的在线拍卖系统,springboot vue mysql (毕业论文10168字以上,共34页,程序代码,MySQL数据库) 代码下载链接:https://pan.baidu.com/s/104LjKF7kvhYeooSBk9h65g?pwd8fk4 提取码:8fk4 【运行环境】 IDEA, JDK1.8, Mysql, Node, Vue 【技…

【每日一题】318. 最大单词长度乘积-2023.11.6

题目: 318. 最大单词长度乘积 给你一个字符串数组 words ,找出并返回 length(words[i]) * length(words[j]) 的最大值,并且这两个单词不含有公共字母。如果不存在这样的两个单词,返回 0 。 示例 1: 输入&#xff1…

模拟ASP.NET Core MVC设计与实现

前几天有人在我的《ASP.NET Core框架揭秘》读者群跟我留言说:“我最近在看ASP.NET Core MVC的源代码,发现整个系统太复杂,涉及的东西太多,完全找不到方向,你能不能按照《200行代码,7个对象——让你了解ASP.…

第26期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区,集成了生成预训练Transformer(GPT)、人工智能生成内容(AIGC)以及大型语言模型(LLM)等安全领域应用的知识。在这里,您可以…

【Git】快速入门安装及使用git与svn的区别常用命令

一、导言 1、什么是svn? SVN是Subversion的简称,是一个集中式版本控制系统。与Git不同,SVN没有分布式的特性。在SVN中,项目的代码仓库位于服务器上,团队成员通过向服务器提交和获取代码来实现版本控制。SVN记录了每个文…

Jmeter+ant+jenkins接口自动化测试

平台简介 一个完整的接口自动化测试平台需要支持接口的自动执行,自动生成测试报告,以及持续集成。Jmeter 支持接口的测试,Ant 支持自动构建,而 Jenkins 支持持续集成,所以三者组合在一起可以构成一个功能完善的接口自动…

聊聊室内导航在应用方面

大家去大型的商场时,应该都见过一些提示牌,微信扫一扫导航。当拿微信扫了之后,就会打开一个小程序,里面显示整个商场的二维或三维的平面结构,以及当前自己的位置。此时可以通过手机快速的查看商场内其他的商铺、公共区…

SQL Server SSIS的安装

标题SQL SERVER 安装 下载SQL SERVER数据库:(以SQL SERVER 2022 Developer版本)(https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads?rtc1) 以administrator权限安装: 下载完成后,会出现以下界面&a…

R语言 PPT 预习+复习

什么狗吧发明的结业考&#xff0c;站出来和我对线 第一章 绪论 吊码没有&#xff0c;就算考R语言特点我也不背&#xff0c;问就是叫么这没用。 第二章 R语言入门 x<-1:20 赋值语句 x 1到20在x上添加均值为0、标准差为2的正态分布噪声 y <- x rnorm (20, 0, 2) 这…

【leaflet】1. 初见

▒ 目录 ▒ &#x1f6eb; 导读需求开发环境 1️⃣ 概念概念解释特点 2️⃣ 学习路线图3️⃣ html示例&#x1f6ec; 文章小结&#x1f4d6; 参考资料 &#x1f6eb; 导读 需求 要做游戏地图了&#xff0c;看到大量产品都使用的leaflet&#xff0c;所以开始学习这个。 开发环境…

微服务中配置文件(YAML文件)和项目依赖(POM文件)的区别与联系

实际上涉及到了微服务架构中的两个重要概念&#xff1a;服务间通信和项目依赖管理。在微服务架构中&#xff0c;一个项目可以通过两种方式与另一个项目建立依赖关系&#xff1a;通过配置文件&#xff08;如YAML文件&#xff09;和通过项目依赖&#xff08;如POM文件&#xff09…

【每日一题】逃离火灾

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;二分枚举空间复杂度&#xff1a; O ( m n ) O(mn) O(mn)。 写在最后 Tag 【二分答案】【BFS】【数组】【2023-11-09】 题目来源 2258. 逃离火灾 题目解读 现在有一个人在一个二维网格的左上角&#xff0c;坐标 (0, 0…

SpringCache(Redis)

一、springcache是什么 springcache是spring的缓存框架&#xff0c;利用了AOP&#xff0c;实现了基于注解的缓存功能&#xff0c;并且进行了合理的抽象&#xff0c;业务代码不用关心底层是使用了什么缓存框架&#xff0c;只需要简单地加一个注解&#xff0c;就能实现缓存功能了…