计算机组成原理 | 第六章:计算机的运算方法 | 进制转换 | 定点运算 | 浮点数运算

news2025/2/27 8:09:00

文章目录

  • 📚进位计数制
    • 🐇任意进制转十进制
    • 🐇十进制整数转换为n进制整数
    • 🐇十进制小数转换为n进制小数
    • 🐇二/八/十六进制的互换
  • 📚带符号的二进制数表示⭐️
    • 🐇原码表示法
    • 🐇补码表示法
    • 🐇反码表示法
  • 📚数的定点表示和浮点表示
    • 🐇定点表示
    • 🐇浮点表示
      • 🥕浮点数的表示形式
      • 🥕浮点数的表示范围
      • 🥕浮点数的规格化⭐️
  • 📚定点运算⭐️
    • 🐇移位运算
    • 🐇补码加减运算
    • 🐇定点原码一位乘法运算
    • 🐇定点补码一位乘法运算
    • 🐇定点原码一位除法运算
      • 🥕原码恢复余数算法
      • 🥕加减交替法
  • 📚浮点数运算⭐️
    • 🐇规格化数的判断
    • 🐇浮点数运算
      • 🥕浮点加减运算
      • 🥕浮点乘除运算
  • 📚小结
    • 🔑本章掌握要点

📚进位计数制

三要素

  • 数码:每个数位上允许的数的集合
  • 基数:进制中允许每个数位上选用基本数码的个数
  • 位权:数码“1”在不同数位上代表的数值

🐇任意进制转十进制

  • 按权相加法——将各位数码与权值相乘,再将各位的乘积值相加在这里插入图片描述

🐇十进制整数转换为n进制整数

除n取余法(倒序)

在这里插入图片描述

🐇十进制小数转换为n进制小数

乘n取整法(正序)

在这里插入图片描述

🐇二/八/十六进制的互换

分组,按位对应转换法

  • 二进制数100010转换为八进制:将每3个二进制数分为一组(从左至右),不够时补0> 在这里插入图片描述

  • 二进制数100111010转换为十六进制:将每4个二进制数分为一组(从左至右),不够时补0

在这里插入图片描述

  • 八进制、十六进制互相转换——以二进制为中介

📚带符号的二进制数表示⭐️

两个基本概念

  • 机器数:在计算机内部使用的,连同数符一起数码化了的数,称为机器数。
  • 真值:机器数所代表的数的实际值,称为真值。

🐇原码表示法

定点整数形式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3EwyHWut-1674621888522)(第六章:计算机的运算方法.assets/image-20230125113054736.png)]

定点小数形式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FzRFKkFL-1674621888522)(第六章:计算机的运算方法.assets/image-20230125113139011.png)]

🥕方法技巧

  • 机器存储一个数时,“+"号编码为0,”-“号编码为1

  • 数值部分:将一个数的绝对值转换为二进制

    结论:原码为符号位+数的绝对值,0正1负

🥕应用示例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kmLdRWlt-1674621888523)(第六章:计算机的运算方法.assets/image-20230125113415677.png)]

🥕原码性质

  • 0可分为+0和-0,有两个编码
  • 符号和数值无关

🐇补码表示法

定点整数形式
在这里插入图片描述
定点小数形式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nx719C0Z-1674621888523)(第六章:计算机的运算方法.assets/image-20230125113706891.png)]

ps:补码的符号位取反就是移码

🥕方法技巧

若指明定长补码,符号位1位,数值部分要补足位数,保持大小不变

  • “+"号编码为0,”-“号编码为1
  • 数值部分(整数、小数均适用)
    • 对于正数,编码方式同原码
    • 对于负数,找到右数第一个“1“这个“1"的左边都取反,右边(包括它自己)不变

🥕应用示例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nUIRmTRD-1674621888524)(第六章:计算机的运算方法.assets/image-20230125120317454.png)]

🥕补码性质

  • 在补码中,0有唯一的编码
  • 补码适合于加减运算
    • [ X + Y ] 补 = [ X ] 补 + [ Y ] 补 [X+Y]_补=[X]_补+[Y]_补 [X+Y]=[X]+[Y]
    • [ X − Y ] 补 = [ X ] 补 + [ − Y ] 补 [X-Y]_补=[X]_补+[-Y]_补 [XY]=[X]+[Y]
  • X 补 X_补 X [ − X ] 补 [-X]_补 [X]
    • 对X的补码(连同符号位)求补得到

🐇反码表示法

🥕方法技巧

  • 正数的反码符号位为0,数值部分就是真值
  • 负数的反码符号位为1,数值部分由真值的数值部分按位取反(定长补足位数)

🥕应用示例

在这里插入图片描述

0的反码表示不唯一


⭕️小结在这里插入图片描述


📚数的定点表示和浮点表示

小数点按约定方式标出

🐇定点表示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1KHokIX3-1674621888527)(第六章:计算机的运算方法.assets/image-20230125123324058.png)]

补码比原码反码多表示一个数(多了一个下界)

🐇浮点表示

在这里插入图片描述

🥕浮点数的表示形式

在这里插入图片描述

🥕浮点数的表示范围

在这里插入图片描述
- 练习:设机器数字长为 24 位,欲表示±3万的十进制数,试问在保证数的最大精度的前提下,除阶符、数符各取1 位外,阶码、尾数各取几位?
在这里插入图片描述

🥕浮点数的规格化⭐️

👉规格化规则

  • 基数为2,尾数最高位为1
  • 尾数应为纯小数,尾数的值不为0时,其绝对值应大于等于十进制的0.5小于1
  • 规格化过程(r=2)
    • 左规:尾数左移1位,阶码减1
    • 右规:尾数右移1位,阶码加1
      在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
补充例题——定点机和浮点机对比
在这里插入图片描述

📚定点运算⭐️

🐇移位运算

有符号数的移位称为算术移位
无符号数的移位称为逻辑移位

🥕算术移位规则(针对有符号数)
在这里插入图片描述

一道例题(关键就是规则对应)
在这里插入图片描述
在这里插入图片描述

🥕逻辑移位规则(针对无符号数)

  • 逻辑左移:低位添0,高位移丢
  • 逻辑右移:高位添0,低位移丢

🐇补码加减运算

🥕公式:
在这里插入图片描述
🥕溢出判断&&综合例题
在这里插入图片描述

🐇定点原码一位乘法运算

  • 时序控制乘法器:加法及移位,分多步进行
  • 阵列乘法器:专门逻辑电路

🥕 时序控制乘法器存在问题及解决方案

  • 符号问题❓
    • 定点原码乘法,符号位单独处理
    • 定点补码乘法,符号位可参与运算
  • 多项部分积相加的处理❓
    • 将n位乘法转换为n次累加和n次移位
  • 乘积的位数扩大一倍问题❓
    • 通过将不再累加的低位右移,加法器的位数无需补充

🥕原码一位乘运算的基本原则

定点整数和定点小数的原码一位乘法运算相同

  • 符号位单独处理
  • 数值:两位数绝对值相乘
    • 若数据位为n,进行n步
    • 每一步:相加+逻辑右移
      • 针对相加:由乘数的末位决定被乘数是否与原部分积相加(若为0则加0)
  • 上例子(对照原则细看)在这里插入图片描述

🐇定点补码一位乘法运算

🥕理论上的方法
在这里插入图片描述

  • 校正法
    在这里插入图片描述
  • Booth算法
    在这里插入图片描述
    在这里插入图片描述
    🥕实操运算原则
  • 符号位和数值位一同参加运算
  • 若数据位为n,进行n+1次加法,n次移位
  • 每步的基本操作:相加算术右移(区别于原码一位乘的逻辑右移)在这里插入图片描述
  • 由乘数相邻两位的值决定相应操作,规则为:
    在这里插入图片描述
  • 上例子(对照原则细看)
    在这里插入图片描述

原码乘法补码乘法
符号位运算结构的符号位需单独处理运算结果的符号位符号位和数值位一同参加运算
判断位乘数寄存器末位1位作判断位乘数寄存器最末2位作判断位
加法和移位操作乘数的数据位为n,原码乘法须做n次加法,n次移位乘数的数据位为n,补码乘法须做n+1次加法,n次移位

🐇定点原码一位除法运算

在这里插入图片描述

🥕原码恢复余数算法

算法规则

  • Step1:首次计算余数:被除数绝对值 - 除数绝对值( [ X ∗ ] 补 + [ − Y ∗ ] 补 [X^*]_补+[-Y^*]_补 [X]+[Y]
  • Step2:利用余数判断上商
    • 余数为正,上商为1;
    • 余数为负,上商为0,加除数的绝对值恢复原余数,即 + [ Y ∗ ] 补 +[Y^*]_补 +[Y]
    • 假如数据位为n,则共需进行n+1次上商判断,n次移位
  • Step3:计算新余数:[2×余数](逻辑左移)- 除数绝对值,转至Step2
  • 若最后一步所得余数为负,还需恢复余数

上例子
在这里插入图片描述

🥕加减交替法

算法规则

  • Step1:首次计算余数:被除数绝对值 - 除数绝对值( [ X ∗ ] 补 + [ − Y ∗ ] 补 [X^*]_补+[-Y^*]_补 [X]+[Y]
  • Step2:根据余数 r i r_i ri的符号判断上商
    • r i > 0 r_i>0 ri>0,上商 Q i Q_i Qi为1,计算新余数: 2 r i − y ∗ 2r_i-y^* 2riy
    • r i < 0 r_i<0 ri<0,上商 Q i Q_i Qi为0,计算新余数: 2 r i + y ∗ 2r_i+y^* 2ri+y
    • 2 r i 2r_i 2ri即逻辑左移
  • Step3:根据新余数再上商,假如数据位为n,则共需进行n+1次上商判断,n次移位
  • 若最后一步所得余数为负,还需恢复余数
    上例子
    在这里插入图片描述

📚浮点数运算⭐️

数的浮点表示详见上文

🐇规格化数的判断

  • 尾数为原码,不论正数、负数,第一数位为1
  • 尾数为补码,符号位与第一数位不同
  • 该判断法则有特例
    • S = -1/2 = -0.1000…000
      • [ S ] 补 = 1.1000...000 [S]_补=1.1000...000 [S]=1.1000...000,非规格化形式,但其为规格化数
    • S = -1
      • [ S ] 补 = 1.0000...000 [S]_补=1.0000...000 [S]=1.0000...000,符合规格化形式,但其并非为规格化数

🐇浮点数运算

🥕浮点加减运算

  • Step1: 对阶
    在这里插入图片描述
  • Step2:尾数补码加减
  • Step3:规格化
    • 规格化判断
    • 左规:尾数左移一位,阶码减1,直到数符和第一数位不同为止
    • 右规:当尾数溢出(>1)时,需右规
      上例子
      在这里插入图片描述

🥕浮点乘除运算

在这里插入图片描述

📚小结

🔑本章掌握要点

  • 掌握原反补码转换
  • 掌握真值与浮点机器数的相互转换
  • 定点数的补码加减运算,以及溢出判断
  • 定点数的乘法(原码一位、补码一位)运算
  • 除法加减交替运算
  • 浮点数规格化
  • 掌握浮点数的补码加减运算
  • 了解浮点数的乘除运算步骤

👀参考博客

进制的概念与转换(二进制、十进制、八进制、十六进制)

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

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

相关文章

“买卖股票的最佳时机” 系列——我来教你稳赚不亏~

目录 前言 一、买卖股票的最佳时机 ——>指定次数交易&#xff08;1次&#xff09; 1.1、dp定义 1.2、递推公式 1.3、遍历顺序 1.4、初始化 1.5、解题代码 二、买卖股票的最佳时机II ——>交易到结束 2.1、分析 2.2、解题代码 三、买股票的最佳时机III ——>…

【keepass】密码管理软件keepass的安全风险分析,如何在使用keepass的过程中避免泄露数据库信息和密码?

一、安全风险分析 1.1 不正规的来源 如果你使用非官方渠道获得keepass软件或某些插件&#xff0c;那么你的密码管理从一开始就没有安全性可言。因为这玩意是开源的啊&#xff0c;如果对方“很懂”&#xff0c;只要往里面植入一些代码&#xff0c;让你的数据库文件和密钥在后台…

react 项目 中 使用 Dllplugin 打包优化

webpack在build包的时候&#xff0c;有时候会遇到打包时间很长的问题&#xff0c;这里提供了一个解决方案&#xff0c;让打包如丝般顺滑~ 在用 Webpack 打包的时候&#xff0c;对于一些不经常更新的第三方库&#xff0c;比如 react&#xff0c;lodash&#xff0c;vue 我们希望…

C语言基础知识(37)

数组一维数组的定义&#xff1a;类型说明符 数组名【常量表达式】&#xff1b;先定义后引用&#xff1b;一维数组初始化时可以只对一部分元素初始化&#xff0c;在对全部数组元素初始化的时候可以部规定长度&#xff1b;但是若被定义的数组长度与提供的初始值不一样时&#xff…

【MySQL】MySQL索引夺命连环问「持续更新中」

文章目录1. 使用MySQL索引的原因2. 索引的三种常见底层数据结构以及优缺点3. 索引的常见类型以及它是如何发挥作用的&#xff1f;4. MyISAM 和 InnoDB 实现 B 树索引方式的区别是什么&#xff1f;5. InnoDB 为什么设计 B 树索引&#xff1f;6. 什么是覆盖索引和索引下推&#x…

【JavaSE专栏7】Java 常量、变量及其作用域

作者主页&#xff1a;Designer 小郑 作者简介&#xff1a;Java全栈软件工程师一枚&#xff0c;来自浙江宁波&#xff0c;负责开发管理公司OA项目&#xff0c;专注软件前后端开发&#xff08;Vue、SpringBoot和微信小程序&#xff09;、系统定制、远程技术指导。CSDN学院、蓝桥云…

Python论文绘图利器seaborn.lineplot

Python论文绘图利器seaborn.lineplot 提示&#xff1a;前言 Python论文绘图利器seaborn.lineplot 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录Python论文绘图利器seaborn.lineplot前言一、导入包二、加载数据三…

嵌入式桌面管理系统Matchbox

简介 Matchbox&#xff08;中文译名&#xff1b;火柴盒&#xff09;是X Window System的免费和开源Window Manager&#xff0c;它主要用于嵌入式系统。取名Matchbox&#xff0c;很形象的表明它只适用于屏幕只有火柴盒大小的设备。 buildroot 移植MatchBox session managermat…

高斯秩变换 RankGauss 可能是比标准化/归一化更有效的连续值特征变换方法

文章目录 一、前言二、关键原理三、总结CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 高斯秩变换是 Kaggle 竞赛大佬 Michael Jahrer(Grandmaster) 提出的一种新颖的特征变换方法,他称之为 RankGauss。类似归一化(MinMax)和标准化(Standardization)的作用,…

帆软报表 V8 get_geo_json 任意文件读取漏洞

帆软报表 V8 get_geo_json 任意文件读取漏洞 CNVD-2018-04757 1.漏洞介绍 FineReport报表软件是一款纯Java编写的&#xff0c;集数据展示(报表)和数据录入(表单)功能于一身的企业级web报表工具。 FineReport v8.0版本存在任意文件读取漏洞&#xff0c;攻击者可利用漏洞读取网…

车载以太网 - 测试用例设计 - 头部信息检测 - 10

前面的篇幅已经把ISO 13400中DoIP软件协议规范部分进行详细的介绍说明,如果在文章中有哪些介绍的不充分或者不够详细,欢迎评论区留言讨论;接下来的文章主要介绍DoIP协议相关的测试用例设计,这也是一个测试工程师必备的重要技能之一,能否保证测试执行完成后,软件质量是达到…

超级详解洛谷P4011 孤岛营救问题(bfs超难题)(保证看懂)

题目 说明 1944 年&#xff0c;特种兵麦克接到国防部的命令&#xff0c;要求立即赶赴太平洋上的一个孤岛&#xff0c;营救被敌军俘虏的大兵瑞恩。瑞恩被关押在一个迷宫里&#xff0c;迷宫地形复杂&#xff0c;但幸好麦克得到了迷宫的地形图。迷宫的外形是一个长方形&#xff…

阿里“云开发“小程序(uniCould)

博主ps&#xff1a; 网上资料少的可怜&#xff0c;哎&#xff0c;腾讯云涨价了&#xff0c;论服务器&#xff0c;我肯定选的阿里&#xff0c;再着你们对比下unicould的报价就知道了&#xff0c;如果有钱就另当别论了。 所以这片博文&#xff0c;博主试过之后&#xff0c;先抛出…

(day8) 自学Java——拼图小游戏

GUI(图形用户接口)&#xff0c;是指采用图形化的方式显示操作界面。 Java中包含两套完整体系&#xff1a;AWT包&#xff0c;Swing包 一.代码 package com.abc.ui;import javax.swing.*; import javax.swing.border.BevelBorder; import java.awt.event.ActionEvent; import ja…

JavaEE day5 初识CSS 2

选择器 基本选择器&#xff1a;id选择器、类选择器、元素选择器 复合选择器&#xff1a;并列选择器、子孙选择器、孩子选择器 通配符选择器 *{.....} 任意元素&#xff1a;书写一些全局的规则时使用&#xff0c;就等于是一个全局都要遵守的规则 伪类选择器&#xff1a;针…

Lab 3: Midterm Review

Lab3 部分questionQ5&#xff1a;Its Always a Good PrimeQ6&#xff1a;Church numeralsQ5&#xff1a;It’s Always a Good Prime Implement div_by_primes_under, which takes in an integer nand returns an n-divisibility checker. An n-divisibility-checker is a funct…

【蓝桥杯选拔赛真题35】python回文数升级 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 python输出N除以3的商 一、题目要求 1、编程实现 2、输入输出

二叉树22:二叉搜索树中的搜索

主要是我自己刷题的一些记录过程。如果有错可以指出哦&#xff0c;大家一起进步。 转载代码随想录 原文链接&#xff1a; 代码随想录 leetcode链接&#xff1a;700. 二叉搜索树中的搜索 题目&#xff1a; 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和一个整数…

变量的了解

1、普通局部变量 -------------定义形式&#xff1a;在{}里面定义的 普通变量 叫做 普通局部变量 -------------作用范围&#xff1a;所在的 {} 复合语句之间有效 -------------生命周期&#xff1a;所在的 {} 复合语句之间有效 -------------存储区域&#xff1a;栈区 ---…

2.6 JAVA运算符

文章目录1.运算符概述2.运算符具体功能3.基本四则运算符4.取余运算符5.自增自减运算符6.比较运算符7.逻辑运算符8.三目运算符9.赋值运算符10.综合练习&#xff1a;求平年闰年1.运算符概述 运算符用于连接表达式的操作数&#xff0c;并对操作数执行运算。 例如&#xff0c;表达…