计算机组成原理主要问题汇总(五)

news2024/10/7 10:15:34

一、定点数的原码、补码、反码和移码的表示和相互转换方法

1、原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

2、反码通常是用来由原码求补码或者由补码求原码的过渡码。

3、补码是由原码变为反码,再由反码转换而来的,所以没有明确的定义。

4、移码:是对补码的符号位取反而得到的,正数、负数的移码计算方式相同,将补码的符号位取反,其余位不变

正数的原码为:01101001

则其反码也为:01101001

则其补码也为:01101001

则其移码应为:11101001

负数的原码为:11001101

则其反码应为:10110010

则其补码应为:10110011(再反码的末位加1)

则其移码应为:00110011

二、补码加减运算以及溢出的概念与检测方法

(1)补码加减法运算的规则:

[X+Y]补=[X]补+[Y]补     

即补码的和等于和的补码

[X-Y]补=[X]补+[-Y]补     

这个是将减法转换成加法的形式这也是使用补码在计算机中进行减法运算的好处可以将减法转换成加法这样就会有助于计算机的运算。

补码运算的两个结论:

1.用补码表示的两个数进行运算得到的结果也是补码

2.符号位和数值位一样参与运算

(2)溢出:对补码进行加法运算容易导致溢出,溢出有三种判断方法,核心逻辑均为两个同号的数相加最终得到了异号的结果。

溢出的判断一共有三种方法:

1.根据符号位进行判断

当符号相同的两个数进行运算算出的得数跟原来的两个数符号位不相同则发生溢出。

fa fb表示两个操作数的符号位 fs表示运算结果的符号位 fs和fa,fb不一致则发生了溢出

2.根据符号位进位和数值位最高位进位来判断

由于在运算过程中符号位也是在参与运算的,所以符号位也会发生进位。如果符号位和数值位都没有进位或者都有进位那么我们说这个是没有溢出的否则我们说这个是发生溢出了。

3.最后一个也是最重要的一个采用双符号位的方式来进行的判断

我们知道在补码中是存在一个符号位的,这里采用双符号位的方式也就是“变形补码”的形式。原补码的符号位是什么这个双符号位就是什么例如:补码符号位是1那么双符号位就是11反之亦然。在运算过程中双符号位也是参与运算的,如果算出结果的双符号位是不一致的那么我们说这个是溢出的如果算出的双符号位是相同的那么我们说这个是没有溢出的。

三、原码和补码的乘法运算方法

1、原码的乘法

所谓原码和补码的乘法在本质上都是参考十进制的乘法:核心都是移位相加

参与运算的数由两部分组成:符号位和数值位

对于符号位,是要进行单独处理

对于数值位,取绝对值进行计算

原码的乘法很简单,如果是0,就加0,如果是1,就加原数

然后再右移,注意是ACC+MQ那一行整体右移

低位的(就是最右边的)直接舍弃,因为已经乘过了

高位的(就是最左边的)添0

整个过程:加法N次,移位N次

2、补码的乘法

补码的乘法比较有意思

补码的乘法同样是移位相加,但是补码中ACC加的东西比较特殊

辅助位:就是最后一位

MQ中的最低位:就是倒数第二位

倒数第一位-倒数第二位=1,ACC+[x]补

倒数第一位-倒数第二位=0,+0

倒数第一位-倒数第二位=-1,+[-x]补

最后再对符号位和符号位后面的一位进行比较,再进行一次加法

注意:这里补码采用的是双符号位

在下面的补码的除法中,同样也是采用的双符号位

四、浮点数的表示和规格化表示方法

(1)浮点数表示法是指以适当的形式将比例因子表示在数据中,让小数点的位置根据需要而浮动。这样,在位数有限的情况下,既扩大了数的表示范围,又保持了数的有效精度。

(2)规格化:规定尾数的最高数位必须是一个有效值。非规格化浮点数要进行规格化操作才能变成规格化浮点数。

五、浮点数的运算方法

1、“对阶”操作---- Ex=Ey
求 △E=E-min(Ex, Ey); E=max(Ex, Ey),△E≠0
将阶码小的数的尾数右移△E位
原码:符号位不参加移位,尾数数值部分高位补0
补码:符号位参加移位,并保持原符号位不变

2、尾数的加减运算
执行对阶后,两尾数进行加/减运算,得到两数之和/差。

3、规格化操作
双符号位的原码规格化尾数,其数值的最高位为1
双符号位的补码规格化尾数,应是00.1xx…x或11.0xx…x
规格化规则:
如果结果的两个符号位的值不同,表示加减法运算尾数结果溢出。此时将尾数结果右移1位,阶码E+1,称为向右规格化,简称“右规”。
如果结果的两个符号位的值相同,表示加减法运算尾数结果不溢出。**若最高数值位与符号位相同,此时尾数连续左移,直到最高数值位与符号位的值不同为止。**同时 E-m(移位的位数) ,称为向左规格化,简称“左规”。

4、舍入
执行右规或对阶时,尾数低位上的数值会移掉,使数值的精度受到影响。常用0舍1入法。
当末尾移掉的最高位为1时,在尾数的末位加1.如果加1后又使尾数溢出,则要再进行一次右规。

5、检查阶码是否溢出
若阶码下溢,运算结果为机器零(通常将阶码和尾数全部置“0”);若上溢,则置溢出标志。

六、ALU的设计方法和工作原理

设计的8位ALU能够实现基本的按位与、按位或、补码加法和补码减法运算,其中按位与、或操作直接按位独立进行即可,加法利用加法器不同输入及进位对应不同输出,补码减法需要取反后最低位加1。但如果要进行负数加负数的操作需要将其中一位提前处理为补码再进行运算。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE(系列5) -- 多线程带来的风险(线程安全)

我们直接给出含有一个bug的例子 创建两个线程,各执行5w次自增。正常情况,结果是10w。 初始代码如下: package threading; //线程不安全 class Counter{private int count0;public void add(){count;}public int get(){return count;} } public class Th…

【项目实训】ATM自助取款系统

文章目录 1. 课程设计目的2. 课程设计任务与要求3. 课程设计说明书3.1 需求分析3.1.1 功能分析3.1.2 性能要求分析 3.2 概要设计3.2.1 功能模块图 3.3 详细设计3.3.1 实体类的设计3.3.2 实现数据库处理 3.4 主要程序功能流程图 4. 课程设计成果4.1 完整代码4.2 运行结果4.2.1 精…

最常用的开源免费自动化测试工具整理汇总 ,总有一款适合你

目录 1、Selenium 2、JMeter 3、Appium 4、Soapui 5、Postman 6、Robot Framework 7、Monkey 8、GT 9、Appscan 10、Jenkins 1、Selenium 官网: WebUI自动化测试 Selenium是一个用于Web应用程序测试的工具,Selenium已经成为Web自动化测试工程…

SpringCloud源码探析(六)-消息队列RabbitMQ

1.概述 RabbitMQ是一个开源的消息代理和队列服务器,它是基于Erlang语言开发,并且是基于AMQP协议的。由于Erlang语言最初使用与交换机领域架构,因此使得RabbitMQ在Broker之间的数据交互具有良好的性能。AMQP(Advanced Message Queuing Protoc…

路径规划算法:基于多元宇宙算法的路径规划算法- 附代码

路径规划算法:基于多元宇宙优化的路径规划算法- 附代码 文章目录 路径规划算法:基于多元宇宙优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能优化…

【Unity Optimize】使用对象池(Object Pooling)优化项目

目录 1 对象池(Object Pooling)介绍2 实现对象池脚本3 使用对象池生成Cube4 效果展示5 Unity资源商店的对象池插件 1 对象池(Object Pooling)介绍 Unity中的对象池(Object Pooling)是一种用于提高游戏性能…

教程详解|如何在PICO眼镜中接入VR全景?

伴随着《万人狂欢泼水节》首场VR直播开启,PICO视频正式推出《跟着PICO去旅行》系列VR文旅直播节目,通过PICO眼镜结合VR技术向众多观众展现更多祖国的大好山河,通过PICO眼镜身临其境地感受云游世界的美妙。 经历了十余年的发展,VR…

esp32环境安装教程---arduino IDE

前言 (1)最近突然对esp32感兴趣了,源于逛油管的时候,总是看到很多大佬使用esp32cam进行网络图传,做摄像头。个人比较感兴趣,在环境安装过程遇到了很多坑,所以在此跟大家分享一下。 (…

了解ChatGPT的最便捷有效方式是跟对人

毕业后,工作原因,我自己的CSND就没有更新过。现在更新一篇有关chatGPT的快速入门指南。 一、什么是chatGPT 2022年12月底,你问我这个问题,我还真得好好跟你解释一下。目前这个阶段的火热程度,这里不再啰嗦了。基于GPT…

AI时代的赚钱思路:23岁女网红如何利用AI技术年入4亿?

一、AI技术为网红赚钱创造新途径 23岁美国网红Caryn Marjorie(卡琳玛乔丽)正同时交往1000多个男朋友。 作为一个在Snapchat上坐拥180万粉丝的美女,她利用人工智能(AI)技术,打造了一个AI版本的自己&#x…

鲲鹏昇腾开发者峰会开幕 星辰天合发布新一代天合翔宇一体机

近日,主题为“创未来 享非凡”的鲲鹏昇腾开发者峰会 2023 在东莞松山湖开幕,此次大会旨在帮助开发者深入了解鲲鹏、昇腾全栈技术,加速行业数智化的技术、产品和解决方案创新。 作为鲲鹏生态重要合作伙伴,XSKY星辰天合获邀参加此次…

【利用AI让知识体系化】入门Koa框架

思维导图 文章目录 思维导图一、介绍Koa什么是KoaKoa的历史Koa的特点 二、基本使用安装KoaHello World中间件路由错误处理 三、进阶使用静态资源管理Session管理文件上传表单处理HTTPS支持 四、Koa中间件中间件的概念Koa的洋葱模型常用中间件的介绍自定义中间件的编写 五、异步…

这个水平来面试也敢要20K?还是3年经验的测试工程师....

起因 老板觉得现在公司部门里都是男的,缺少一点阴柔之气,想平衡一下,正巧当时互联网公司倒了一大批,大批简历投到公司,老板以为自己也是技术出身,就想着要招了一个三年工作经验的女测试员,要价…

ANR实战案例1 - Google广告导致ANR解决

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录前言一、AdLoader$Builder广告构建ANR二、AdView布局动态创建案例总结 前言 一、AdLoa…

Linux 安装JDK详解

安装步骤 1. 从官网下载安装包保存到 /home/download 下面 2.下载后解压到指定目录,例如:/usr/java/jdk11 3. 解压压缩包 [rootlocalhost linux-x86-64]# cd /usr/java/jdk11 [rootlocalhost jdk11]# [rootlocalhost jdk11]# [rootlocalhost jdk11]…

【换模型更简单】如何用 Serverless 一键部署 Stable Diffusion?

作者:寒斜 本篇章是阿里云函数计算部署 Stable Diffusion 系列的第三篇,如果说第一篇是尝试使用云服务来解决用户本地部署 Stable Diffusion 的问题(显卡成本,部署技术复杂),第二篇是面向技术同学解决云服…

Wijmo 2023 v1 Crack

改进了 FlexGrid,支持 React 18 严格模式和可访问性。 5月 15, 2023 - 10:51 新版本 特征 改进了对 React 18 的支持 - 添加了对 React 18 严格模式的支持,可帮助开发人员在开发过程中查找常见错误。辅助功能改进 - 以下是此版本中…

postman工具使用中,遇到的简单疑问

post请求和get请求有什么区别? GET请求和POST请求都是HTTP协议中的两种常见请求方式,主要区别如下: GET请求在请求URL的后面附带参数,而POST请求则将参数包含在请求体中。 GET请求的数据是以查询字符串的形式传递的,而…

JavaEE(系列4) -- 多线程(线程的状态)

目录 观察线程的所有状态 1. new状态 2. TERMINATED 状态 3. RUNNABLE 就绪状态,运行状态 4. TIMED_WAITNG 休眠状态 5. BLOCKED 表示等待锁出现的状态 6. WAITING 使用wait方法出现的状态 观察线程的所有状态 线程的状态是一个枚举类型 public class test2 {public static v…

【AI绘图 丨 Midjourney 系列教程二】— 初识超火的AI绘画神器Midjourney

今天起,由 Midjourney 打头阵,让我们开始共同探索一系列的 AI 领域革命性作品,包括 Midjourney、Stable Diffusion、ChatGPT 等等,学习这些新时代的魔法和它的咒语。 写在前面 官方文档是最好的入门课程。相较于市面上琳琅满目的…