「常识」浮点数和定点数

浮点数和定点数

本篇文章旨在简短的介绍浮点数、定点数的定义,以及一些常见的数制、补码。

一、常识

如果缺少以下常识的话,将很难理解浮点数和定点数的概念。

1、数

  1. 自然数
  2. 整数/分数
  3. 小数:有限小数、无限循环小数、无限不循环小数
  4. 实数:一个完备的数域。
  5. 复数
  6. 向量

2、计算机中数

1和0。

3、数制

2进制:逢2进1

8进制:逢8进1

10进制:逢10进1

16进制:逢16进1

————————————————分割线——————————————————

二、定点数和浮点数

在现实世界,我们需要计算y=sin(x)、y=cos(x)的函数值,x属于R,结果将是-1~1的无限稠密的连续值。

考虑计算机,x和y只能用有限的1和0来表示(有没有感受到人类的局限性,哪怕是用10300个字节来存储,也是有限的,用全世界的硬盘来存储也是有限的)。

现在人类将做出让步:比如只用10位小数位数作为有效值,之后的小数位数就省略了。

1、定点数

一句话:区间等分。

1⃣️考虑自然数:4bit,表示0~15,一共16个数。这也被称为自然编码。无须多言,自然的意思就是自然就懂了。

2⃣️考虑小数:比如用4bit,可以表示0~15,一共16个整数。如果用来表示0~1,那么把0~1等分成16等份,4’b0000表示0,4’b0001表示1/16=0.0625,4’b1111表示15/16=0.9375。想要精度更高,就付出更多bit位数的代价。

比如8bit,8’b0000_0001 = 1/256 = 0.00390625 ≈千分之4

现在你已经学会了用二进制数表示有限位的小数了。

3⃣️现在考虑负数:补码(不需要从公式角度理解)。

补码就是走针的手表。12过了就是1。

举例:3bit,自然编码,最大就是111,表示7,现在用111表示-1,越过了111,就是000,表示0。其余的正常加减就行了。一句话:用自然编码的最大值和最小值来表示正负之间的鸿沟

3bit的补码,范围为-4到3。(在这个数域中:3+1=-4)

-4-3-2-10123
100101110111000001010011

现在你已经学会了用二进制数表示负数了。

4⃣️考虑负的小数:用补码表示小数。

比如3bit的补码,范围为-2到正2:

-4-3-2-10123
100101110111000001010011
-2-1.5-1-0.50.00.51.01.5

(不知道读者读到这里有没有意识到一个问题:我们讨论的1和0和实数中的1和0是不是同一个东西?搜索关键词:伽罗华域。计算机中的1和0只是一个代号,其物理存在是高电平和低电平。如果不嫌麻烦完全可以记为阳和阴,那么这里-2的补码就是“阳阴阴”。)

2、浮点数

1⃣️考虑一个定点数:32bit能够表示的范围:0~42_9496_7295。一共有42.9亿多种状态,假设每个数,都带有10个bit的小数位数,并用补码表示:那么范围是:[-221,221-1]。221-1=209_7151。也就是说,计算范围是正负209万,两千乘以两千都会越界。(2000*2000=400万)

有没有感受到定点数的局限性?

现在我们来考虑牺牲一点东西,然后换来不越界的好处。

牺牲什么好呢?

自然是最不受重视的小数了。但又不能一个小数位数都不要。

那应该怎么办呢?

原则:大数的小数位数少一些,小数的小数位数多一些。这个原则显然是很合理的,想想你月初拿到生活费的时候,再想想你月底生活费快用光的时候。

2⃣️浮点数

考虑一个大数:1314520 = 1.314520*106

考虑一个小数:0.1314520 = 1.314520*10-6

这里两个数差了12个数量级。

但是二者却很相似。科学记数法:±1.(小数部分)*10n

因此我们不用记录1,只需要记录正负号小数部分指数

现在我们把这个科学记数法里面的小数部分称为尾数部分,换个名字,便于区分。

来看看IEEE的规定:(图片截图于:通俗易懂理解——浮点与定点的计算机表示及互转)
请添加图片描述

那么你能计算出单精度浮点数的范围吗?

指数部分8位,考虑正负指数:-128到127次方。

范围就是[10-128,10127]。

这种表示规则的好处就是,将范围拓展的很大,并且每个数都只有23位尾数。这意味着,一个大于1023的数,将会一个小数位数都没有。

带来的坏处:一个大数+一个小数,小数结果将被无情丢弃,这可能会导致计算出错。

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

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

相关文章

2.2 消元法的概念

一、消元法介绍 消元法(elimination)是一个求解线性方程组的系统性方法。下面是使用消元法求解一个 2 2 2\times2 22 线性方程组的例子。消元之前,两个方程都有 x x x 和 y y y,消元后,第一个未知数 x x x 将从第…

APC学习记录

文章目录 APC概念APC插入、执行过程逆向分析插入过程执行过程总结 代码演示参考资料 APC概念 APC全称叫做异步过程调用,英文名是 Asynchronous Procedure Call,在进行系统调用、线程切换、中断、异常时会进行触发执行的一段代码,其中主要分为…

机器学习 | 决策树算法

一、决策树算法概述 1、树模型 决策树:从根节点开始一步步走到叶子节点(决策)。所有的数据最终都会落到叶子节点,既可以做分类也可以做回归。 在分类问题中,表示基于特征对实例进行分类的过程,可以认为是if-then的集合&#xff0…

推理还是背诵?通过反事实任务探索语言模型的能力和局限性

推理还是背诵?通过反事实任务探索语言模型的能力和局限性 摘要1 引言2 反事实任务2.1 反事实理解检测 3 任务3.1 算术3.2 编程3.3 基本的句法推理3.4 带有一阶逻辑的自然语言推理3.5 空间推理3.6 绘图3.7 音乐3.8 国际象棋 4 结果5 分析5.1 反事实条件的“普遍性”5…

基于Qt 文本读写(QFile/QTextStream/QDataStream)实现

​ 在很多时候我们需要读写文本文件进行读写,比如写个 Mp3 音乐播放器需要读 Mp3 歌词里的文本,比如修改了一个 txt 文件后保存,就需要对这个文件进行读写操作。本章介绍简单的文本文件读写,内容精简,让大家了解文本读写的基本操作。 ## QFile 读写文本 QFile 类提供了读…

AIGC应用公司开始赚钱了,创始人来自中国,7个月实现100万美元ARR

图片来源:由无界AI生成 自 2022 年中以来,AIGC 赛道持续 1 年有余。然而,热闹归热闹,赚钱的公司一只手都能数得过来。奇葩如 Midjourney,硬是不靠 VC 输血凭着 11 人年做到 1 亿美元 ARR;幸运如 Jasper&…

ideaSSM在线商务管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 SSM 在线商务管理系统是一套完善的信息管理系统,结合SSM框架和bootstrap完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码 和数据库,系统主…

No175.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

WIN11新版画图问题解决

1 白色背景被连同删除的问题 解决方法:加层 将层调整为新建的层,在这个层下画图就行。 2 QQ截图无法直接放在画图上的问题 使用QQ截图的时候: 解决方法:使用windows自带的截图工具或者微信截图 步骤: 1. windows自带…

网络安全—小白自学

1.网络安全是什么 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究防御技术。 2.网络安全市场 一、是市场需求量高; 二、则是发展相对成熟…

docker-compose安装

1.安装docker-compose: yum install -y docker-compose 出现如下错误: 可以先执行: 添加docker-compose的yum仓库 yum install -y epel-release 附:

【Bug—eNSP】华为eNsp路由器设备启动一直是0解决方案!

问题描述 在上机实验时,打开ensp软件,添加AR设备时启动异常,最开始错误代码是40,最后通过重新安装,又出现了新的问题,启动AR设备一直是0,而且界面卡住。 解决方法 打开VirtualBox,将…

Redis文件事件模型

Redis是事件驱动的程序,并基于Reactor模式开发了自己的网络事件处理器,被称之为文件处理器(File Event Handler)。 文件处理器通过I/O多路复用程序来同时监听多个Socket,并根据Socket目前执行的任务来关联不同的事件处理器。当被监听的Socket…

剪辑中遮罩可分几种 剪辑遮罩视频怎么做

当你觉得剪辑特效很难制作的时候,不妨阅读一下本文,来了解遮罩的原理和用法。它是一种超级剪辑工具,可以制作出各种神奇的画面效果。在了解遮罩的基本原理后,就连初学者也能轻松地制作出令人惊艳的剪辑遮罩。有关剪辑中遮罩可分几…

vue3 code format bug

vue code format bug vue客户端代码格式化缺陷,为了方便阅读和维护,对代码格式化发现这个缺陷 vue.global.min.3.2.26.js var Vuefunction(r){"use strict";function e(e,t){const nObject.create(null);var re.split(",");for(le…

Spark新特性与核心概念

一、Sparkshuffle (1)Map和Reduce 在shuffle过程中,提供数据的称之为Map端(Shuffle Write),接受数据的称之为Redeuce端(Shuffle Read),在Spark的两个阶段中,总…

基于springboot,vue校园社团管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plus 本系…

Linux之系统编程

1.yum 1.yum list可以出现所有可下载的程序 辅助grep进行查找 2.yum install可以下载并安装 3.yum remove可以卸载程序 不同的商业操作系统内核都是一样的,主要是配套社区不一样。 开源组织,各大公司,既得利益者。 同上 基础软件源可以保证…

李沐——论文阅读——VIT(VIsionTransformer)

一、终极结论: 如果在足够多的数据上面去做预训练,那么,我们也可以不用 卷积神经网络,而是直接用 自然语言处理那边搬过来的 Transformer,也能够把视觉问题解决的很好 (tips:paperswithcode.co…

STM32F10xx 存储器和总线架构

一、系统架构 在小容量、中容量和大容量产品 中,主系统由以下部分构成: 四个驱动单元 : Cotex-M3内核、DCode总线(D-bus)和系统总线(S-bus) 通用DMA1和通用DMA2 四个被动单元 内部SRAM 内部…