热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

JS双精度64位Number

typeof范例:undefinedobjectnumberstring:utf-16两个字节为一个unitebooleanfunctionnumber范例:双精度64位能够示意2

typeof范例:

"undefined"
"object"
"number"
"string":utf-16两个字节为一个unite
"boolean"
"function"

number范例: 双精度64位
能够示意2^64-2^53+3个数

1)正无限
负无限
2)0,-0
3)正数
4)NaN

双精度64位


63 62…….52 51 20 ……0
1 11111111 1111…1111
1位标记位sign + 11位指数位e + 52位小数位f S*E*F
S=(-1)^sign……(-1)^0或(-1)^1 1)正负无限:11指数位全为1,52位是0
2)NaN: 11指数位全为1,52位不全为0 1)+2)=3(被1位标记位 52位f位掌握,E位稳定,应该有2^53种,然则差别的nan)
统共=2^64-2^53+3 3)0,-0: 11指数位全为0,52位全为0 4)11指数位全为0,f不全为0:denormal
示意0~1之间的数,不包括1,不包括0
E=2^(-1022);
F=0.52位二进制
=0+b(52-1)*2^(-1)+…b(0-52) *2^-52
=0+1/2+1/4+1/8+…+1/2^52(f全为1的例子);
0~1之间很小的间距,指数E与normal状况下最小E一致,2^(1-1023)=2^-1022
每两个小数之间的差最小为=比方f位只要一个1与f位为0(非denormal值)的差
=1*2^-1022*(0+2^-52) - 1*2^-1022 * (0+0)
=2^-1074
denormal最小值=1*2^-1022*(0+2^-52)=2^-1074 5)11指数位有0有1:normal
示意>=1的数
E=2^(e-1023);
e=b(52+0) * 2^0+b(52+1) *2^1+…+b(52+7)*2^10

F=1.52位二进制
=1+b(52-1)*2^(-1)+…b(0-52) *2^-52
=1+1/2+1/4+1/8+…+1/2^52(f全为1的例子);

normal最小值=1*2^(1-1023)*(1+0)=2^-1022;

单精度32位(如果JS用单精度32位示意number,状况以下)

31 30…….23 22 21 ……0
1 11111111 1111…1111
1位标记位sign+8位指数位e+23位小数位f S*E*F
S=(-1)^sign……(-1)^0或(-1)^1 1)正负无限:8指数位全为1,23位是0
2)NaN: 8指数位全为1,23位不全为0 1)+2)=3(被1位标记位 23位f位掌握,E位稳定,应该有2^24种,然则差别的nan)
统共=2^32-2^24+3 3)0,-0: 8指数位全为0,23位全为0 4)8指数位全为0,f不全为0:denormal
示意0~1之间的数,不包括1,不包括0
E=2^(-126);
F=0.23位二进制
=0+b(23-1)*2^(-1)+…b(0-23) *2^-23
=0+1/2+1/4+1/8+…+1/2^23(f全为1的例子);
0~1之间很小的间距,指数E与normal状况下最小E一致,2^(1-127)=2^-126
每两个小数之间的差最小为=比方f位只要一个1与f位为0(非denormal值)的差
=1*2^-126*(0+2^-23) - 1*2^-126 * (0+0)
=2^-149
denormal最小值=1*2^-126*(0+2^-23)=2^-149 5)8指数位有0有1:normal
示意>=1的数
E=2^(e-127);
e=b(23+0) * 2^0+b(23+1) *2^1+…+b(23+7)*2^7

F=1.23位二进制
=1+b(23-1)*2^(-1)+…b(0-23) *2^-23
=1+1/2+1/4+1/8+…+1/2^23(f全为1的例子);

normal最小值=1*2^(1-127)*(1+0)=2^-126;

推荐阅读
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • JavaScript 中创建对象的多种方法
    本文详细介绍了 JavaScript 中创建对象的几种常见方式,包括对象字面量、构造函数和 Object.create 方法,并提供了示例代码和属性描述符的解释。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 本文总结了优化代码可读性的核心原则与技巧,通过合理的变量命名、函数和对象的结构化组织,以及遵循一致性等方法,帮助开发者编写更易读、维护性更高的代码。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 本文介绍了如何在 Node.js 中使用 `setDefaultEncoding` 方法为可写流设置默认编码,并提供了详细的语法说明和示例代码。 ... [详细]
  • 本文介绍 Java 中如何使用 Year 类的 atMonth 方法将年份和月份组合成 YearMonth 对象,并提供代码示例。 ... [详细]
author-avatar
陈宥治政和瑋男
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有