计算机组成原理——数据表示(二)

news2025/1/23 10:39:23

当生活的压力和困惑缠绕在身边,我们往往需要振奋精神,勇往直前。无论在何种困境中,我们都要保持积极的态度和坚定的信念。将悲观的情绪抛之脑后,展现出坚强的意志力和无尽的活力。振奋精神意味着我们要战胜自己内心的负面情绪,抛开烦恼,迎接挑战。无论面对多么艰难的境遇,我们都应该激发内心的力量,迎难而上。不论结果如何,勇敢的尝试本身就是一种胜利。振奋精神是一种积极的心态,它让我们变得更加勇敢、自信和坚定。只有拥有振奋精神,我们才能在困境中找到解决问题的办法,战胜自己的恐惧和犹豫。所以,无论前方有多么曲折和艰巨,让我们一起振奋精神,勇往直前吧!

计算机组成原理资源网

https://www.wenjingketang.com/这里面有ppt课后习题及答案,需要的可以自行下载

目录

2.2 定点数的表示

2.2.1 无符号数和有符号数的表示

2.2.2 机器数的定点表示

2.2.3 数的机器码表示

2.3 浮点数的表示

2.3.1 浮点数的表示格式

2.3.2 规格化浮点数

2.3.3 IEEE 754标准

2.4 常见问题和易混淆知识点

无符号数与有符号数的区别

定点数与浮点数的选择

规格化与非规格化的理解

IEEE 754标准的理解


2.2 定点数的表示

2.2.1 无符号数和有符号数的表示

无符号数(Unsigned Numbers):

  • 定义: 只能表示非负数,每一位都用于表示数值大小,没有专门的符号位。
  • 范围: 对于n位无符号整数,其取值范围是从0到2n−12n−1。例如,8位无符号整数的范围是0到255。
  • 例子: 一个8位无符号整数00001010表示十进制中的10。

有符号数(Signed Numbers):

  • 定义: 可以表示正数和负数,最高位通常作为符号位,0 表示正数,1 表示负数。
  • 原码(Sign-Magnitude Representation):
    • 定义: 符号位加上绝对值的二进制表示。例如,8位二进制中的+5为00000101,-5为10000101
    • 问题: 存在一个正零和一个负零(0000000010000000),这增加了复杂性。
  • 反码(One's Complement):
    • 定义: 正数的反码等于其原码;负数的反码是在原码基础上,除了符号位外,其余各位取反。
    • 问题: 同样存在两个零的问题,并且在进行算术运算时需要额外的步骤来处理符号位。
  • 补码(Two's Complement):
    • 定义: 是最常用的表示方式。正数的补码等于其原码;负数的补码是在其反码的基础上加1。补码的优点是可以简化加减法运算,因为在补码系统中,正数和负数的加减法可以统一为加法操作。
    • 优点: 解决了双零问题,并且使得加法器设计更为简单,能够正确处理带符号数的加减运算。
  • 例子:
    • +5 的补码表示为 00000101
    • -5 的补码表示为 11111011(先将5转换成二进制 00000101,然后取反得到 11111010,最后加1变为 11111011)。
2.2.2 机器数的定点表示

定点数(Fixed-point Number):

  • 定义: 定点数是指小数点位置固定不变的数字表示方法。根据小数点的位置不同,分为定点整数和定点小数两种类型。
  • 定点整数: 小数点位于最低有效位之后,所有位都用来表示整数部分。
  • 定点小数: 小数点位于最高有效位之前,所有位都用来表示小数部分。
  • 混合定点数: 一部分位表示整数部分,另一部分位表示小数部分。小数点的位置是预先约定好的。

特点:

  • 简单直观,硬件实现容易。
  • 适合用于对精度要求不高或已知数据范围的应用场景。
  • 在嵌入式系统和DSP(数字信号处理器)中广泛应用。
2.2.3 数的机器码表示

机器码(Machine Code):

  • 定义: 机器码是计算机内部用来表示数值的形式,采用二进制表示法。对于有符号数,通常使用补码形式。
  • 无符号数: 没有符号位,全部位用于表示数值。
  • 有符号数: 使用最高位作为符号位,其余位表示数值。

例子:

  • 对于8位二进制:
    • +5 的补码表示为 00000101
    • -5 的补码表示为 11111011


2.3 浮点数的表示

2.3.1 浮点数的表示格式

浮点数(Floating-point Number):

  • 定义: 浮点数是一种用来表示实数的数据类型,它允许小数点位置浮动,从而可以表示非常大或非常小的数值。
  • 组成: 浮点数由三部分组成:符号位(S)、指数位(E)和尾数位(M)。
    • 符号位(S): 1位,表示数值的正负,0为正,1为负。
    • 指数位(E): 表示数值的大小,通常是偏置表示法(Biased Notation),即实际指数加上一个偏移量。
    • 尾数位(M): 表示数值的有效数字部分,也称为分数部分。

例子:

  • IEEE 754单精度浮点数格式:
    • 符号位:1位
    • 指数位:8位
    • 尾数位:23位
2.3.2 规格化浮点数

规格化(Normalized Form):

  • 定义: 当浮点数被表示为规格化形式时,尾数的第一位总是隐含为1(但不在存储中显式出现),这样可以在不增加存储空间的情况下提高表示精度。
  • 特点:
    • 提高了表示精度,因为多了一位有效数字。
    • 保证了浮点数之间的比较更加直接和高效。

非规格化数(Denormalized or Subnormal Numbers):

  • 定义: 当指数全为0时,尾数不再隐含前导1,而是直接从第一位开始计算,这样的浮点数被称为非规格化数。
  • 作用: 主要是为了扩展可表示的最小正数和最大负数的范围,填补了规格化数与零之间的空隙。
2.3.3 IEEE 754标准

IEEE 754标准:

  • 概述: IEEE 754是一个广泛接受的标准,规定了浮点数的表示方法、舍入规则以及异常情况的处理等。
  • 版本: 目前有两个主要版本——1985年发布的原始版本和2008年更新的版本。
  • 格式:
    • 单精度(Single Precision): 32位,包括1位符号位、8位指数位和23位尾数位。
    • 双精度(Double Precision): 64位,包括1位符号位、11位指数位和52位尾数位。
    • 四精度(Quadruple Precision): 128位,适用于更高精度需求的场合。

特殊值:

  • 零(Zero): 所有位均为0表示正零;符号位为1,其他位为0表示负零。
  • 无穷大(Infinity): 指数全为1,尾数全为0表示正无穷或负无穷。
  • NaN(Not a Number): 指数全为1,尾数至少有一位为1表示不是一个合法的数值。


2.4 常见问题和易混淆知识点

无符号数与有符号数的区别
  • 区别: 无符号数只能表示非负数,而有符号数既能表示正数也能表示负数。它们的最大区别在于最高位是否作为符号位使用。
  • 影响: 如果不小心将有符号数当作无符号数处理,可能会导致严重的逻辑错误。例如,在C语言中,如果一个变量被声明为unsigned int,那么即使它的值超过了int类型的上限,也不会触发溢出错误,而是继续循环回0。
定点数与浮点数的选择
  • 选择依据:
    • 定点数: 适合精度要求不高或已知数据范围的应用场景,如嵌入式系统、DSP等。由于其简单性和效率,常用于实时控制系统。
    • 浮点数: 更适合需要高精度和大动态范围的应用,如科学计算、图形渲染等领域。然而,浮点运算相对复杂,消耗更多资源。
规格化与非规格化的理解
  • 规格化: 提高了表示精度,但在某些情况下可能导致下溢(Underflow),即接近零的小数无法准确表示。
  • 非规格化: 允许表示更小的数,但代价是降低了精度。它们主要用于避免完全丢失信息的情况,比如当数值非常接近零时。
IEEE 754标准的理解
  • 重要性: IEEE 754确保了不同平台之间浮点数表示的一致性,减少了跨平台开发时可能出现的兼容性问题。
  • 细节: 包括但不限于浮点数的表示格式、舍入模式、异常处理机制等。熟悉这些细节有助于编写更可靠和高效的程序。

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

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

相关文章

人源化抗体的改造方式及其优势【卡梅德生物】

随着生物制药行业的迅速发展,抗体药物已经成为治疗多种疾病(尤其是癌症、免疫性疾病等)的重要手段。抗体人源化改造技术作为抗体药物研发的关键技术之一,在提高药物疗效和降低免疫原性方面发挥了至关重要的作用。 1. 人源化抗体的…

【Linux】深刻理解动静态库

1.什么是库 库是写好的现有的,成熟的,可以复⽤的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个⼈的代码都从零开始,因此库的存在意义⾮同寻常。本质上来说库是⼀种可执⾏代码的⼆进制形式,可以被操作系统载…

【java数据结构】其他非基于比较排序

【java数据结构】其他非基于比较排序 一、计数排序二、基数排序三、桶排序 博客最后附有整篇博客的全部代码!!! 一、计数排序 场景:集中在某个范围内的一组数据 思路: 找到这组序列的最大值和最小值,通过…

博客之星2024年度总评选——我的年度创作回顾与总结

2024年,是我在CSDN博客上持续耕耘、不断成长的一年。在此,与大家分享一下我的年度创作回顾与总结。 一、创作成长与突破 在人工智能领域,技术迭代迅速,知识更新频繁。为了保持自己的竞争力,在今年,我始终…

ChromeOS 132 版本更新

ChromeOS 132 版本更新 1. 企业定制化 Chrome Web Store 管理员现在可以使用新设置定制 Chrome Web Store 以适应他们管理的用户,包括以下功能: 添加公司标志添加首页横幅和自定义公告策划扩展集合实施基于类别的控制 这些设置可以通过管理员控制台进…

Golang Gin系列-5:数据模型和数据库

在这篇Gin教程的博客中,我们将探索如何将模型和数据库与Gin框架无缝集成,使你能够构建健壮且可扩展的web应用程序。通过利用流行的库并遵循最佳实践,你将学习如何定义模型、建立数据库连接、执行CRUD操作以及确保基于gin的项目中的数据完整性…

计算机毕业设计hadoop+spark股票基金推荐系统 股票基金预测系统 股票基金可视化系统 股票基金数据分析 股票基金大数据 股票基金爬虫

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

设计模式的艺术-代理模式

结构性模式的名称、定义、学习难度和使用频率如下表所示: 1.如何理解代理模式 代理模式(Proxy Pattern):给某一个对象提供一个代理,并由代理对象控制对原对象的引用。代理模式是一种对象结构型模式。 代理模式类型较多…

Spring Boot整合Thymeleaf、JDBC Template与MyBatis配置详解

本文将详细介绍如何在Spring Boot项目中整合Thymeleaf模板引擎、JDBC Template和MyBatis,涵盖YAML配置、依赖版本匹配、项目结构设计及代码示例。 一、版本兼容性说明 Spring Boot版本与Java版本对应关系 Spring Boot 2.x:支持Java 8、11(推…

【博客之星】2024年度创作成长总结 - 面朝大海 ,春暖花开!

没关系的,大家都会做错选择,会 莫名其妙掉眼泪,走在路上会突然崩溃, 但这并不影响我们去看看晚霞, 再次爱上这个世界。 面朝大海 ,春暖花开! about meReviewLife about me 现在我是一名24级计算机类的…

StyleMaster: Stylize Your Video with Artistic Generation and Translation 论文解读

目录 一、概述 二、相关工作 1、图像风格化 2、视频风格化 三、StyleMaster 1、创建对比数据集 2、提取全局描述子 3、局部描述和全局描述结合 4、时间和风格质量的运动适配器 5、Gray Tile ControlNet 四、实验 一、概述 Our StyleMaster demonstrates superior vi…

c++进阶---c++三大特性之一---多态

多态的简单介绍:是一种动态的访问函数,比如:你定义了一个一个人类和一个学生类,当你传入的是学生类的时候,你需要有购物优惠,这种情境下用多态就很适用。 1.简单的多态使用: 1.1构造多态的条件…

安卓程序作为web服务端的技术实现(二):Room 实现数据存储

已经实现web服务器安卓程序作为web服务端的技术实现:AndServer 实现登录权限拦截-CSDN博客 现在需要和正常web项目类似,那么就需要操作数据库 一般web项目都是选择较为重型的数据库如MySQL,SQL server等 这里是安卓项目,我目前…

如何使用Python脚本将本地项目上传到 GitHub

前言 这里我们通过创建一个新的github仓库,来测试我们的脚本能否上传我们本地的项目,并且进行更新。首先你需要先安装 Git,关于这部分我好像没有记录过,这里我搜索看了一下,这篇博客写的Git安装详解应该是比较齐全的&…

Day 15 卡玛笔记

这是基于代码随想录的每日打卡 222. 完全二叉树的节点个数 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值&#x…

IO进程----进程

进程 什么是进程 进程和程序的区别 概念: 程序:编译好的可执行文件 存放在磁盘上的指令和数据的有序集合(文件) 程序是静态的,没有任何执行的概念 进程:一个独立的可调度的任务 执行一个程序分配资…

【Postgres_Python】使用python脚本将多个PG数据库合并为一个PG数据库

需要合并的多个PG数据库表个数和结构一致,这里提供一种思路,选择sql语句insert插入的方式进行,即将其他PG数据库的每个表内容插入到一个PG数据库中完成数据库合并 示例代码说明: 选择一个数据库导出表结构为.sql文件&#xff08…

微软预测 AI 2025,AI Agents 重塑工作形式

1月初,微软在官网发布了2025年6大AI预测,分别是:AI模型将变得更加强大和有用、AI Agents将彻底改变工作方式、AI伴侣将支持日常生活、AI资源的利用将更高效、测试与定制是开发AI的关键以及AI将加速科学研究突破。 值得一提的是,微…

《Java核心技术 卷II》获取Web数据提交表单数据

提交表单数据 了解即可,直接上案例 package 第4章网络.post;import java.io.IOException; import java.io.InputStream; import java.io.PrintWriter; import java.io.Reader; import java.net.CookieHandler; import java.net.CookieManager; import java.net.Co…

Spring Boot AOP实现动态数据脱敏

依赖&配置 <!-- Spring Boot AOP起步依赖 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency>/*** Author: 说淑人* Date: 2025/1/18 23:03* Desc…