【恶补计算机基础】定点数和浮点数

在计算机中,小数点及其位置并不是显式表示出来的,而是隐含规定的。根据小数点的位置,可以分为两类:定点数和浮点数。

1 定点数

小数点的位置是固定不变的。根据小数点的具体位置,又可以分为两类:定点小数和定点整数。

定点小数

小数点隐含固定在最高数据位的左边,整数位表示符号位,用于表示一个纯小数。

在这里插入图片描述

定点整数

小数点隐含固定在最低数据位的之后,整数位表示符号位,用于表示一个纯整数。

在这里插入图片描述

2 浮点数

小数点的位置由阶码确定,因此是浮动的!用于表示实数。在计算机中,通常将浮点数拆分长阶码(exponent)和尾数(mantissa)两部分表示。尾数是规格化的纯小数。
x f p = 尾数 × 基 数 阶码 x_{fp} = 尾数 \times 基数^{阶码} xfp=尾数×阶码
举个例子:
( 11100.101 ) 2 = 0.11100101 × 2 5 = 0.11100101 × 2 101 (11100.101)_2 = 0.11100101 \times 2^5 = 0.11100101 \times 2^{101} (11100.101)2=0.11100101×25=0.11100101×2101
其实写法和十进制的科学记数法一致。
0.11100101 × 2 101 0.11100101 \times 2^{101} 0.11100101×2101实际上是由两个定点数组成,分别是(1)表示阶码的定点整数;(2)表示尾数的定点小数。

在这里插入图片描述
浮点数的一般存储格式:

在这里插入图片描述

16位浮点数(简单例子)

16位浮点数的格式:阶码是5位,尾数是9位,数符和阶符分别是1位。
举个例子:实数28.625的浮点表示。
N = 28.625 = ( 11100.101 ) 2 = ( 0.11100101 ) 2 × 2 5 N = 28.625=(11100.101)_2=(0.11100101)_2\times2^5 N=28.625=(11100.101)2=(0.11100101)2×25

在这里插入图片描述

IEEE 754标准(重点掌握🌟)

在这里插入图片描述
IEEE 754总共用32位对浮点数进行存储,被划分成了三个部分:(1)符号位S;(2)阶码E;(3)尾数M。

  • 符号位S:0 = 正数,1 = 负数
  • 阶码E:浮点数被二进制科学表示法规范化后的指数,阶码采用移码表示(也就是有个偏置)
  • 尾数M:被二进制规格化后要求小数点前一位数必须为1,由于所有的浮点数都采用这样的方式进行处理,所以尾数中实际隐含了最高位1,例如尾数为M,则实际在还原时,相当于是1.M

于是,已知S、E和M,我们可以得到浮点数为:
x f p = ( − 1 ) S × 1. M × 2 E − 偏置 x_{fp} = (-1)^S\times 1.M \times 2^{E-偏置} xfp=(1)S×1.M×2E偏置
注意,在单精度浮点数中,偏置=127。

浮点数 => IEEE 754
现在直观看一下如何将十进制浮点数转换为IEEE 754标准表示。已知一个十进制数85.125,求IEEE 754表示。

  • 步骤1:将十进制数转二进制数,即 85.125 = ( 1010101.001 ) 2 85.125=(101 0101.001)_2 85.125=(1010101.001)2
  • 步骤2:进行规范化,即 ( 1.010101001 ) 2 × 2 6 (1.010101001)_2 \times 2^6 (1.010101001)2×26
  • 步骤3:确定符号位S=0,阶码 E = 6 + 127 = 133 = ( 10000101 ) 2 E=6+127=133=(10000101)_2 E=6+127=133=(10000101)2,尾数 M = 010101001 M=010101001 M=010101001(注意:M要省略掉小数点前的1)
  • 步骤4:写出完整的IEEE 754表示,即 0 ∣ 10000101 ∣ 01010100100000000000000 0|10000101|01010100100000000000000 0∣10000101∣01010100100000000000000(注意:如果E不满8位,则在前面补0,如果M不满23位,则在后面补0)

IEEE 754 => 浮点数
已知一个IEEE 754表示是C1 51 00 00,求对应的十进制浮点数。

  • 步骤1:展开IEEE 754表示,即 1 ∣ 10000010 ∣ 10100010000000000000000 1|1000 0010|101 0001 0000 0000 0000 0000 1∣10000010∣10100010000000000000000
  • 步骤2:确符号位S=1为负,阶码 E = ( 10000010 ) 2 = 130 E=(1000 0010)_2=130 E=(10000010)2=130,尾数 M = ( 10100010000000000000000 ) 2 = . 6328125 M=(101 0001 0000 0000 0000 0000)_2=.6328125 M=(10100010000000000000000)2=.6328125(注意:尾数算出来的十进制数是小数位,前面隐含了1.)
  • 步骤3:带入公式,即 x f p = ( − 1 ) S × 1. M × 2 E − 偏置 = − 1 × 1.6328125 × 2 130 − 127 = − 13.0625 x_{fp} = (-1)^S\times 1.M \times 2^{E-偏置}=-1\times 1.6328125 \times 2^{130-127}=-13.0625 xfp=(1)S×1.M×2E偏置=1×1.6328125×2130127=13.0625

补充一下双精度浮点数的表示方式,转换方式和单精度类似,这里就不赘述了。
在这里插入图片描述

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

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

相关文章

Linux-vi编辑器命令使用

一、初始-vi 1、 vi-打开文件并且定位行 有可能会遇到打开一个文件,并定位到指定行的情况 例如,知道某一行代码有错误,可以快速定位到出错代码的位置 可以使用以下命令打开文件$ vi 文件名 行数 提示:如果只带上 而不指定行号&…

Python邮件群发有哪些步骤?如何批量发送?

Python邮件群发的注意事项?怎么使用Python群发邮件? 使用Python进行邮件群发,不仅可以自动化流程,还可以节省大量的时间和精力。AokSend将详细介绍使用Python进行邮件群发的步骤,并在过程中提供实用的建议和注意事项。…

windows下使用命令清空U盘

1、CMD命令打开后输入diskpart命令打开磁盘分区管理工具 diskpart打开如下窗口 Microsoft DiskPart 版本 10.0.19041.3636 Copyright (C) Microsoft Corporation. 在计算机上: DESKTOP-TR9HQRP 2、输入查看所有磁盘命令 list disk打印如下windows 磁盘 ###  状态    …

机械臂码垛机:解读其高效作业与灵活性

在当今高度自动化的工业时代,机械臂码垛机以其高效作业和灵活性,成为了生产线上的得力助手。这款设备不仅大幅提升了生产效率,还显著降低了人工操作的强度和风险,为现代工业发展注入了强大的动力。 机械臂码垛机的高效作业能力令人…

【机器学习】必会降维算法之:奇异值分解(SVD)

奇异值分解(SVD) 1、引言2、奇异值分解(SVD)2.1 定义2.2 应用场景2.3 核心原理2.4 算法公式2.5 代码示例 3、总结 1、引言 一转眼, 小屌丝:鱼哥,就要到每年最开心的节日了:六一儿童…

搭建Vulnhub靶机网络问题(获取不到IP)

搭建好靶场后,在攻击机运行arp-scan -l无法发现靶机IP。 这时候去看下靶机网络有没有问题。 重新启动客户机,一直按e进入安全模式(要是直接开机了就先按shift进入grub界面,再按e)找到ro,将ro改为rw signie…

XM平台的交易模式模式是什么?

外汇交易平台的盈利模式主要分为两种:有交易员平台和无交易员平台。 有交易员平台,也称为做市商平台,为客户提供交易市场,并在需要时与客户持相反方向的交易,从中赚取利润。交易者看到的买入卖出价可能与实际价格不同&…

python 巡检报告中的邮件处理

00.创作背景,在每天的巡检报告中要 要检查oa相关服务器的备份作业是否备份成功 那个备份软件有个功能,就是完成备份作业后,可以发送信息到我的邮箱。 01.通过检查我邮箱的信息,就可以了解那个备份作业的情况。 通过解释邮件的名称可以了解备…

一分钟学习数据安全—自主管理身份SSI架构

上一篇我们概要介绍了SSI的几个组成部分,包括可验证凭证信任三角、治理框架等,后面的介绍文章我们将分别介绍一下相关的技术。 SSI的堆栈演进到现在,综合整个生态中的关键架构决策,普遍接受的是一个四层模型。 如上图所示&#xf…

QT系列教程(8) QT 布局学习

简介 Qt 中的布局有三种方式,水平布局,垂直布局,栅格布局。 通过ui设置布局 我们先创建一个窗口应用程序,程序名叫layout,基类选择QMainWindow。但我们不使用这个mainwindow,我们创建一个Qt应用程序类Log…

使用API有效率地管理Dynadot域名,删除已设置的文件夹

关于Dynadot Dynadot是通过ICANN认证的域名注册商,自2002年成立以来,服务于全球108个国家和地区的客户,为数以万计的客户提供简洁,优惠,安全的域名注册以及管理服务。 Dynadot平台操作教程索引(包括域名邮…

河南省第十四届ICPC大学生程序设计竞赛-C结对编程

题面 时间限制:C/C 1秒,其他语言2秒 空间限制:C/C 524288K,其他语言1048576K 64bit IO Format: %lld 题目描述 A公司是一家主营软件开发的公司。公司内有n名员工,编号为1到n的整数,除了1号老板外每名员工…

用友NC downCourseWare 任意文件读取漏洞复现

0x01 产品简介 用友NC是一款企业级ERP软件。作为一种信息化管理工具,用友NC提供了一系列业务管理模块,包括财务会计、采购管理、销售管理、物料管理、生产计划和人力资源管理等,帮助企业实现数字化转型和高效管理。 0x02 漏洞概述 用友NC 系统 /portal/pt/downCourseWare…

【Go】编码结构体转换为json字符串

结构体内字段命名大小写问题导致无法解析到 package mainimport ("encoding/json""fmt" ) // 定义一个结构体 type Music struct {name string json:"名称" // 字段大小写命名问题!!!singer string json:&q…

Javascript系统学习(三)

前端模块化前端模块化CommonJS、AMD、CMD、ES6_commonjs amd cmd es6模块化-CSDN博客 ES6: <script type"module" src"main.js"></script> //默认导出 export default function(ctx) {... } ----------------------------------- //模块命名…

创新科技,船舶岸电电源助力环保事业

岸电电源&#xff0c;也称为岸用变频电源或电子静止式岸电电源&#xff0c;是一种特别设计制造的大功率变频电源设备。这种设备主要针对船上、岸边码头等高温、高湿、高腐蚀性、大负荷冲击等恶劣使用环境&#xff0c;能够提供稳定的电源供应。它通常用于将岸边的工业用电&#…

SpringBoot 请求响应

SpringBoot 请求响应 来源于黑马程序员JavaWeb课程&#xff0c;总结笔记 1.ApiFox Apifox快速入门教程 2.基本参数 简单参数&#xff1a;在向服务器发起请求时&#xff0c;向服务器传递的是一些普通的请求数据。 //RequestController.java import jakarta.servlet.http.Htt…

概率分析和随机算法

目录 雇佣问题 概率分析 随机算法 生日悖论 随机算法 概率分析 球与箱子 总结 雇佣问题 有n个候选人面试&#xff0c;如果面试者比目前雇佣者的分数高&#xff0c;评价更好&#xff0c;那么就辞掉当前雇佣者&#xff0c;而去聘用面试者&#xff0c;否则继续面试新的候…

C# Web控件与数据感应之 填充 HtmlTable

目录 关于 HtmlTable HtmlTable与BaseDataList的区别 准备数据源 ​范例运行环境 FillTable 方法 设计与实现 模板样例输出 Automatic 模式填充 ​ DynamicRows 模式填充 StaticRows 模式填充 ​ 小结 关于 HtmlTable 数据感应也即数据捆绑&#xff0c;是…

电商行业为什么要分析竞争商品?详解竞争商品分析八个维度

在当今的电子商务领域&#xff0c;竞争日益激烈&#xff0c;消费者拥有几乎无限的选择。品牌和商家为了在这场竞争中获得优势&#xff0c;必须深入理解市场动态、消费者需求以及竞争对手的策略。分析竞争商品是实现这一目标的关键步骤。它不仅帮助商家揭示行业内表现优异商品的…