javascript现代编程系列教程之三——数值表示方式
在64位浮点数的表示中,我们使用了一个叫做"偏移二进制"的技术来存储指数。这是因为我们需要在有限的位数(在这种情况下是11位)内表示正数和负数。
让我们更详细地解释一下:
- 符号位:浮点数的最高位是符号位,0代表正数,1代表负数。
- 指数部分:接下来的11位用于存储指数。但是,这个值并不直接表示指数。相反,它被看作是一个无符号整数,并且在计算前需要减去一个固定的"偏移量"(在这种情况下是1023)。所以如果这11位的值是
e
,那么真正的指数其实是e - 1023
。
这样做的目的是为了能够在同样的位数内表示更大范围的指数。例如,如果这11位的值是2046,那么真正的指数是2046 - 1023 = 1023
;如果这11位的值是1024,那么真正的指数是1024 - 1023 = 1
。也就是说,通过这种方式,我们可以用11位表示从-1022到1023的指数范围。 - 尾数部分:剩下的52位用于存储尾数。这些位表示的是二进制小数,即形如0.1、0.01、0.001等的值。
让我们来看一个具体的例子:
假设我们有一个64位浮点数,其二进制表示为:
0100000001111111111111111111111111111111111111111111111111111111
这个数的符号位是0,所以它是一个正数。
指数部分的值是10000000111
(二进制),转换成十进制是1039。但是,我们需要减去偏移量1023,所以真正的指数是1039 - 1023 = 16
。
尾数部分的值是1111111111111111111111111111111111111111111111111111
(二进制),这是一个二进制小数,表示的是(1/2) + (1/4) + (1/8) + ... = 1
。
所以,这个浮点数的值是1 * 2^16
,也就是65536。
希望这个详细的解释可以帮助你理解!
javascript现代编程系列教程之三——数值表示方式的更多相关文章
- RabbitMQ系列教程之三:发布/订阅(Publish/Subscribe)(转载)
RabbitMQ系列教程之三:发布/订阅(Publish/Subscribe) (本教程是使用Net客户端,也就是针对微软技术平台的) 在前一个教程中,我们创建了一个工作队列.工作队列背后的假设是每个 ...
- 高德地图 JavaScript API 开发系列教程(一)
高德地图 API 提供包括 Web API 即 JavaScript API,Android API,定位API,IOS API,WP API,Win8 API等,本系列教程主要针对高德 JavaSc ...
- 珍藏的C语言编程系列教程
本文有332个文字,大小约为2KB,预计阅读时间1分钟 这是本人珍藏的C语言.C++系列教程. 相信每个Coder的第一门编程语言就是C语言吧, 现在也依然很热门,不谈了.直接上链接,感兴趣的直接存, ...
- javascript 高级编程系列 - 基本数据类型
javascript中的基本数据类型包括: Undefined, Null, Boolean, Number, String 5种数据类型 1. Undefined 类型 (只有一个值 undefin ...
- .NET组件控件实例编程系列——5.DataGridView数值列和日期列
在使用DataGridView编辑数据的时候,编辑的单元格一般会显示为文本框,逻辑值和图片会自动显示对应类型的列.当然我们自己可以手工选择列的类型,例如ComboBox列.Button列.Link列. ...
- Apache Shiro系列教程之三:Shiro的结构
Shiro的设计目标是简化应用的安全管理工作.软件通常是以用户为基础设计的.也就是说,我们经常是根据用户是怎样和我们的软件交互的来设计相关的用户接口.比如,你可能会说"如果是已经登录的用户与 ...
- 高德地图 JavaScript API 开发系列教程(二)
上节简单介绍高德地图JavaScript API及网页中基本地图展示.有了地图后我们可以用来做什么?有人说离我最近的超市在哪里,我怎么去?别急,这些功能我们后面都会慢慢实现.今天为大家详细讲解如何在地 ...
- linux虚拟主机管理系统wdcp系列教程之三
我们安装了网站服务管理系统wdcp之后,在使用过程中可能会出现这样或那样的疑问,下面给大家整理几点出来,方便大家学习.还有不懂的可以到wdlinux论坛寻找相关教程. 1.wdcp后台访问安全设置即限 ...
- RabbitMQ系列教程之三:发布/订阅(Publish/Subscribe)
(本教程是使用Net客户端,也就是针对微软技术平台的) 在前一个教程中,我们创建了一个工作队列.工作队列背后的假设是每个任务会被交付给一个[工人].在这一部分我们将做一些完全不同的事情--我们将向 ...
- js面向对象编程 ---- 系列教程
原 js面向对象编程:数据的缓存 原 js面向对象编程:如何检测对象类型 原 js面向对象编程:if中可以使用那些作为判断条件呢? 原 js面向对象编程:this到底代表什么?第二篇 原 js面向对象 ...
随机推荐
- WPF之XAML语法
目录 树形结构 对象属性赋值语法 使用标签的Attribute 使用属性元素 扩展:标记扩展(Markup Extensions) 扩展:使用TypeConverter 类映射Atribute与Pro ...
- 项目性能优化—使用JMeter压测SpringBoot项目
项目性能优化-使用JMeter压测SpringBoot项目 我们的压力测试架构图如下: 配置JMeter 在JMeter的bin目录,双击jmeter.bat 新建一个测试计划,并右键添加线程组: 进 ...
- 记录--虚拟 DOM 和实际 DOM 有何不同?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 本文我们会先聊聊 DOM 的一些缺陷,然后在此基础上介绍虚拟 DOM 是如何解决这些缺陷的,最后再站在双缓存和 MVC 的视角来聊聊 ...
- [开源初探]screenshot-to-code:将截图转化为代码
介绍说明 将截图转化为 HTML 代码的工具.该项目可以将屏幕截图转化为 HTML/JS/Tailwind CSS 代码,它使用 GPT-4 Vision 生成代码.DALL-E 3 生成相似的图片. ...
- 一文讲透Java核心技术之高可扩展利器SPI
大家好,我是冰河~~ SPI的概念 JAVA SPI = 基于接口的编程+策略模式+配置文件 的动态加载机制 SPI的使用场景 Java是一种面向对象语言,虽然Java8开始支持函数式编程和Strea ...
- 一行代码 python 证件照换底色
安装所需模块 pip install OpenCV-python pip install cvzone pip install mediapipe 代码 import cv2 import cvzon ...
- nuxt环境目录结构
- KingbaseES 物理备库影响主库的性能与垃圾回收
前言 KingbaseES 物理备库有些配置可能影响到主库性能,或者反过来说主库某些配置也会影响到备库.终极原因还是heap tuple 和dead tuple放在一起导致的. 首先,原理上讲,物理备 ...
- windows系统python3.6(Anaconda3)安装对应版本 torch、torchvision
一.官网下载 .whl 文件 https://download.pytorch.org/whl/torch_stable.html 二.使用pip命令安装 打开你的anaconda,选择对应虚拟环境终 ...
- 【已解决】Hadoop未知的主机名master