计算机组成原理第二章——数据的表示与运算(下)

news2024/11/22 17:36:13

提示:时光清浅处 一步一安然

文章目录

  • 前言
  • 2.3.1 浮点数的表示
  • 2.3.2 IEEE754
  • 2.2.3 浮点数的运算


前言

本节主要讲三个问题,浮点数的表示,IEEE 754标准,浮点数的加减运算

2.3.1 浮点数的表示

浮点数的作用和基本原理
定点数可表示的数字范围有限,但我们不能无限制地增加数据的长度
将一个数值用阶码和尾数来表示,这样表示的数值的范围就大大增加了,
请添加图片描述

浮点数规格化
尾数的最高位是无效位会丧失精度,规定尾数的最高数值位必须是一个有效值
左规:当浮点数运算的结果为非规格化时要进行规格化处理,讲尾数算数左移一位,阶码减一
右规:当浮点数运算的结果尾数出现溢出,(双符号位为01或10,双符号位中的更高位表示我们当前数值的正负性)时,将尾数算数右移一位,新空出的位置与与双符号位保持一致,这里也就是零,最后阶码加一
采用双符号位,当溢出发生时候,可以挽救,更高的符号位是正确的符号位

请添加图片描述

浮点数的表示范围
这里要注意用补码表示的负数的尾数,我们为了计算机处理起来方便,我们规定数值位的最高位必须是0,正数依然是1,也就是当符号位为0的时候 数值位为1 当符号位为1的时候数值位为0,如下图右下的例题,我们知道负数的补码是补1的,并且规格化是需最高位为0的,所以也就需要算数左移三位,此时阶码值就要减3
请添加图片描述
知识点回顾
请添加图片描述

2.3.2 IEEE754

移码
我们上面说过阶码可以使用移码或者补码来,尾数也可以使用原码或者补码来表示,所以也就需要某些标准,
补码的基础上将符号位取反就能得到移码,注意移码只能用于表示整数
移码的定义:移码=真值+偏置值,此处8位移码的偏置值=128d=1000 0000B 偏置值一般取128D 此时移码=补码符号位取反,IEEEE754取的偏置值127时,此时对于真值-128=1000 0000B 移码=-1000 0000 +0111 1111=1111 1111(这里的计算时是发现被减数比减数要小,由于我们移码只有8bit,所以背后的这些加减运算都会进行mod128,我们可以在原有的基础上加上128,然后再减 此时得到的移码便是1111 1111)
请添加图片描述
IEEE754
这个表格需要记住,并且在计算时,可以将这个移码看成一个无符号数,然后用之前的计算方式 比如下图double中的蓝色部分的,可以看成无符号数128(移码)-1023(偏移量)
请添加图片描述
请添加图片描述
请添加图片描述
数值范围
之前我们说过-128(全1) -127(全0)有其他用处 所以这里阶码的最小值时-126,所以范围如下
请添加图片描述
虽然在偏置值为127 时,移码全0 事实上的对应的-127次方,但是这里下图我们会把它固定的视为-126次方,此时是正无穷还是负无穷是看其中的数符位
请添加图片描述

2.2.3 浮点数的运算

本节主要讲的是浮点数的加减法运算,以及强制类型转换
小阶向大阶靠齐是为了计算机内部硬件的实现方便

请添加图片描述
它的两个符号位是否相同 相同则没有越界,如这里的11 就没有越界请添加图片描述
舍入问题
除了右规的时候会面临舍入的问题,有的计算机可能会浮点数的尾数部分单独拆出来计算24bit->32bit 算完结果在经过舍入32bit->24bit再拼回浮点数
请添加图片描述
本节回顾
请添加图片描述

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

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

相关文章

由浅入深了解HashMap源码

由经典面试题引入,讲解一下HashMap的底层数据结构?这个面试题你当然可以只答,HashMap底层的数据结构是由(数组链表红黑树)实现的,但是显然面试官不太满意这个答案,毕竟这里有一个坑需要你去填&a…

Java容器使用注意点

前置:问题 判空集合转map集合遍历集合去重集合转数组数组转集合 一:集合判空 《阿里巴巴 Java 开发手册》的描述如下: 判断所有集合内部的元素是否为空,使用 isEmpty() 方法,而不是 size()0 的方式。 我们在开发中也…

AI大模型突围战

最近,GPT赛道上争议不断,先是GPT-4的问世,用一些亮眼的功能让人类感叹自己是不是要丢工作?紧接着又有一封联名信刷屏,图灵奖得主、AI三巨头之一的约书亚本吉奥、埃隆马斯克等123个业界大佬,呼吁所有人工智能…

Vcpkg安装指定版本包或自定义安装包

文章目录前言寻找版本安装后话前言 windows一直用着vcpkg作为C跨平台开发的包管理,有些依赖要指定版本库,vcpkg目前最新的openssl版本是3.1.0,我想安装其他版本为例,开始本教程 寻找版本 以openssl举例,在vcpkg目录中…

react3:受控组件(表单默认变成受控)-组件通信 - typescript项目

受控组件:表单 非受控组件表单元素值不受所在组件状态的控制, 我们将这样的表单元素称作: 非受控组件. 受控组件受控组件 : 值受到 React 组件状态控制的表单元素一般是通过 defaultValue 属性, onChange 事件配合将非受控组件变为受控组件. 多表单元素操作 &#…

如果当前node.js版本和项目需要版本不一样,卸载重装其他版本node.js的方法

其实这种node.js版本不一样的问题,可以选择用nvm来管理node.js的不同版本。 此处仅总结卸载当前版本node.js重新安装所需版本node.js的方法 另:现在 用Vite官网里面的 yarn/npm等 的方法,创建Vue3项目——需要12版本的node.js 以下以本人 …

Vue3中readonly 与 shallowReadonly的使用区别?

文章目录前言readonly强行修改readonly:shallowReadonlyshallowReadonly强行修改结果:前言 readonly: 让一个响应式数据变为只读的(深只读)。 shallowReadonly: 让一个响应式数据变为只读的(浅只读&#x…

真正好用的工业品ERP系统应该是什么样的?

一个好用的进销存ERP系统应该有以下特点: 1. 全面覆盖企业经营流程,包括采购、销售、库存、财务等模块,能够实现全方位的管理和控制。 2. 自定义配置,灵活地适应大多数用户的需求。 3. 数据精准、实时化,支持统计分…

基于CALMET诊断模型的高时空分辨率精细化风场模拟技术应用

【查看原文】气象数据相关分析及使用系列:基于CALMET诊断模型的高时空分辨率精细化风场模拟技术应用 在研究流场时,常用观测、模型风洞测试和数值模拟方法进行研究。但时常遇到研究区气象站点分布稀疏,不能代表周边复杂地形的风场。风洞模拟…

day7 线程的取消和清理

线程的取消 意义:随时杀掉一个线程 int pthread_cancel(pthread_t thread); 注意:线程的取消要有取消点才可以,不是说取消就取消,线程的取消点主要是阻塞的系统调用 如果没有取消点,手动设置一个; voi…

【网络应用开发】实验4——会话管理

目录 会话管理预习报告 一、实验目的 二、实验原理 三、实验预习内容 1. 什么是会话,一个会话的生产周期从什么时候,到什么时候结束? 2. 服务器是如何识别管理属于某一个特定客户的会话的? 3. 什么是Cookie,它的…

全网最详细,Python接口自动化测试接口加密实战,框架撸码.......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 如果接口测试仅仅只…

【驱动开发】Windows过滤平台(WFP,Windows Filtering Platform)

文章目录Windows的发展历程TDI简介WFP简介用户态基础过滤引擎(BFE)内核态过滤引擎(KMFE)垫片(Shim)分层(Layer)子层(Sub Layer)过滤器(Filter&…

【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)

可在系列教程的基础上继续开发,也可以单独使用 【微信小程序-原生开发】系列教程 效果预览 代码实现 点击触发生成海报 在活动详情页,指定点击某图标/按钮,触发跳转到生成海报的页面 pages\components\party\detail\index.js getPoster() …

OpenTex 企业内容管理平台

OpenText 企业内容管理平台 将内容服务与领先应用程序集成,弥合内容孤岛、加快信息流并扩大治理 什么是内容服务集成? 内容服务集成通过将内容管理平台与处于流程核心的独立应用程序和系统连接起来,支持并扩展了 ECM 的传统优势。 最好的内…

【通过Cpython3.9源码看看python字符串对象的创建】

CPython源码解析之PyUnicode_New函数实现 简介 PyUnicode_New是Python源码中用于创建Unicode字符串对象的函数,定义在UnicodeObject.c文件中。该函数接受一个长度参数size和最大字符值参数maxchar(根据传入的最大字符值 maxchar 确定新创建的字符串对象所需的存储…

百度工程师的软件质量与测试随笔

作者 | 百度移动生态质效工程师们 导读 在降本增效、以chatGPT为代表的大模型技术横空出世的背景下,对软件质量和软件测试的领域也带来了巨大冲击,也使得软件质量工作者开始变得焦虑,主要体现在:公司对软件质量从业者的不重视加剧…

SQL Server的执行计划(Execution Plans)

执行计划一、背景二、显示和保存执行计划三、显示估计的执行计划四、显示实际执行计划五、以 XML 格式保存执行计划六、比较和分析执行计划6.1、比较执行计划6.2、分析实际执行计划总结一、背景 为了能够执行查询,SQL Server 数据库引擎必须分析该语句,…

21100颗星的Locust性能测试工具到底有多牛!

一句话:用普通的Python编写可扩展的负载测试,就够了,懂得自然懂! Locust是一个易于使用、可编写脚本和可扩展的性能测试工具。你在常规的Python代码中定义你的用户的行为,而不是受制于一个UI或领域特定的语言&#xff…

HTB-Obscurity

HTB-Obscurity信息收集8080端口立足www-data -> robertrobert -> rootsudo 注入hash捕获信息收集 8080端口 ”如果攻击者不知道你在使用什么软件,你就不会被黑客攻击!“,目标对web的指纹做了某些处理。 “‘SuperSecureServer.py’ in the secre…