「常识」浮点数和定点数

news2024/12/23 22:15:18

浮点数和定点数

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

一、常识

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

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.coloradmin.cn/o/1148142.html

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

相关文章

独创改进 | RT-DETR 引入 Asymptotic Hybrid Encoder | 渐进混合特征解码结构

本专栏内容均为博主独家全网首发,未经授权,任何形式的复制、转载、洗稿或传播行为均属违法侵权行为,一经发现将采取法律手段维护合法权益。我们对所有未经授权传播行为保留追究责任的权利。请尊重原创,支持创作者的努力,共同维护网络知识产权。 文章目录 网络结构实验结果…

97. 交错字符串

题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 解题思路:动态规划。 如果s1.length()s2.length ! s3.length(),直接返回false,否则使用动态规划求解。定义状态:dp[i][i]&#xff…

在CPU上运行yolov5

https://blog.csdn.net/weixin_54721509/article/details/122983561 前提是安装好了 python和 opencv基本环境 ,如果没按转可以参考:https://blog.csdn.net/yangshengwei230612/article/details/127606771 安装pytorch 进入pytorch官网 https://pytor…

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

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

SOLIDWORKS PDM 2024数据管理5大新功能

1. 改进的视觉内容 • 通过装配体可视化功能,在 SOLIDWORKS 中以图形方式查看零部件数据,如工作流程状态。• 使用特定图标迅速识别焊件切割清单零部件。 优点:重要数据和系统信息一目了然。 2.增强的数据保护和跟踪功能 •保护“包含”和…

D-LINK SQL注入漏洞让攻击者获得管理员权限

D-Link DAR-7000 设备中发现了一个名为 SQL 注入的安全漏洞。 SQL注入是一种恶意攻击,它利用Web应用程序中的漏洞注入恶意SQL语句并获得对数据库的未经授权的访问。 此技术允许攻击者查看、修改和删除数据库中的数据,这可能对数据的机密性、完整性和可…

leetcode经典面试150题---4.删除有序数组中的重复项II

目录 题目描述 前置知识 代码 方法一 双指针 思路 图解 实现 复杂度 题目描述 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使得出现次数超过两次的元素只出现两次 ,返回删除后数组的新长度。 不要使用额外的数组空间&…

YouTube博主数据信息资源

YouTube博主数据信息资源 🔥我是一位拥有10年编程经验的程序猿,为你带来一个全新的优质资源 🔍您是否在寻找最新、最活跃的YouTube博主数据,以助力你的项目、营销或研究? 我们的数据,您的优势:…

【《数据库系统原理》学习笔记-第1章】

数据库系统概述 概述基本概念数据数据库数据库管理系统数据库系统 管理发展『人工管理阶段』『文件系统阶段』『数据库系统阶段』 主页传送门:📀 传送 概述 数据库系统原理课程是一门理论与实践相结合的课程,通过大数据技术、数据保护、关系…

【Leetcode】【每日一题】【中等】274. H 指数

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/h-index/description/?envTyped…

云游长江大桥,3DCAT实时云渲染助力打造沉浸化数字文旅平台

南京长江大桥是中国第一座自主设计建造的双层公路铁路桥,也是世界上最早的双层公路铁路桥之一。它不仅是一座桥梁,更是一座历史文化的见证者和传承者。它见证了中国人民的智慧和奋斗,承载了中国社会的变迁和发展。 如何让这座不可移动的文物…

【Android】Android Framework系列---CarPower电源管理

Android Framework系列—CarPower电源管理 智能座舱通常包括中控系统、仪表系统、IVI系统 、后排娱乐、HUD、车联网等。这些系统需要由汽车电源进行供电。由于汽车自身的特殊供电环境(相比手机方便的充电环境,汽车的蓄电池如果没有电是需要专业人士操作…

这个第一个输出为啥是2 不是4 啊?

#include <iostream> using namespace std;class Point{ public:int x;int y;Point(int x1, int y1) : x(x1), y(y1) //成员初始化列表{ }int getDistance() {return x * x y * y;} };void changePoint1(Point point) //使用对象作为函数参数 {point.x 1;point.y -…

上海高考英语科目命题趋势和备考建议,附1990-2023真题解析

英语和语文一样&#xff0c;都是侧重语言的阅读理解、交流和运用&#xff0c;但是英语作为外国语和语文又不太一样&#xff0c;相对来说考的更简单一些。不过要拿高分也不容易。 为了帮助高三的学子们提升英语备考的效率&#xff0c;争取多提分&#xff0c;六分职场特撰写这篇…

信息系统项目管理师教程 第四版【第5章-信息系统工程-思维导图】

信息系统项目管理师教程 第四版【第5章-信息系统工程-思维导图】 课本里章节里所有蓝色字体的思维导图

ZYNQ连载05-Vitis更新xsa硬件配置

ZYNQ连载05-Vitis更新xsa硬件配置 1. 简述 在开发过程中&#xff0c;Vivado中硬件配置在开发过程中有所变动&#xff0c;Vitis需要根据Vivado生成的xsa文件&#xff0c;更新相应的BSP配置 2. 操作步骤

基于SSM的个性化美食推荐系统设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;采用JSP技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#x…

【斗罗二】王东升级三环,戴华斌挑衅,雨浩单手接鼎订下赌约

【侵权联系删除】【文/郑尔巴金】 深度爆料&#xff0c;《绝世唐门》第20集&#xff0c;一场瞩目的战斗即将爆发。王冬&#xff0c;这位一年级的强攻系班长&#xff0c;将与戴华斌进行一场激烈的较量。王冬拥有三大武魂&#xff0c;其中最为人们所熟知的是那光明女神蝶&#x…

美食论坛大全订阅交流系统 uniapp+vue 微信小程序设计与实现

美食大全订阅小程序在系统的智能手机上可以运行&#xff0c;主要实现了首页、个人中心、用户管理、菜系管理、口味管理、美食分类管理、美食信息管理、美食论坛、系统管理等主要功能模块的操作和管理。 后端&#xff1a;java(springbootssm)/python/php/nodejs/ 开发运行&…

Mac 安装使用NPM及常用命令

环境&#xff1a; Mac 工具&#xff1a; NPM 可通过官网查询一些模块相关 NPM Doc 通过官网文档了解更多的关于NPM的使用 安装 NPM是Node.js的包管理工具&#xff0c;可用于解决 Node.js在代码部署上的问题。 新版本的Node.js已经集成了NPM&#xff0c; 因此可通过下载 Nod…