编程笔记 html5cssjs 072 JavaScrip BigInt数据类型
编程笔记 html5&css&js 072 JavaScrip BigInt数据类型
- 一、BigInt 数据类型
- 二、BigInt 的创建和使用
- 三、BigInt 操作与方法
- 三、示例
- 小结
JavaScript BigInt 数据类型是一种内置的数据类型,用于表示大于
Number.MAX_SAFE_INTEGER(即2^53 - 1)的整数。由于JavaScript中的标准数字类型(Number)使用双精度浮点格式存储,它在表示非常大的整数时会受限于其精度,可能导致精度丢失或无法正确表示超过安全范围的整数值。
一、BigInt 数据类型
JavaScript BigInt 数据类型是一种内置的数据类型,用于表示大于 Number.MAX_SAFE_INTEGER(即2^53 - 1)的整数。由于JavaScript中的标准数字类型(Number)使用双精度浮点格式存储,它在表示非常大的整数时会受限于其精度,可能导致精度丢失或无法正确表示超过安全范围的整数值。
BigInt类型的引入解决了这个问题,允许程序员处理任意大小的整数,包括那些对于常规Number类型来说过大的整数。
二、BigInt 的创建和使用
-
字面量表示法:
创建BigInt对象最直接的方式是通过在整数值后面添加后缀n。let bigintValue = 9007199254740993n; // 这是一个BigInt值 console.log(bigintValue); // 输出: 9007199254740993n -
构造函数表示法:
如果需要将字符串或其他类型转换为BigInt,可以使用BigInt构造函数。let alsoBigInt = BigInt("9007199254740993"); // 字符串转BigInt console.log(alsoBigInt); // 输出: 9007199254740993nlet fromNumber = BigInt(Number.MAX_SAFE_INTEGER + 1); // Number转BigInt console.log(fromNumber); // 输出: 9007199254740994n
三、BigInt 操作与方法
-
算术运算:BigInt支持基本的算术运算,如加法、减法、乘法、除法、取模等,但需要注意的是,BigInt与Number不能直接进行混合运算,必须先将Number转换为BigInt。
let a = 123456789012345678901234567890n; let b = 987654321098765432109876543210n;let sum = a + b; console.log(sum); // 正确执行,结果也是一个BigIntlet mixAdd = a + 1; // 错误,BigInt和Number不能直接相加 // 必须改为: let correctMixAdd = a + BigInt(1); -
比较操作:BigInt同样支持比较运算符(<, >, <=, >=, ==, !=)来比较两个BigInt或BigInt与Number(Number会被自动转换为BigInt以便比较)。
-
位运算:BigInt也支持位操作符,如按位与(&)、按位或(|)、按位异或(^)、左移(<<)、右移(>>)以及无符号右移>>>(ES2022中新增)。
-
库函数:
BigInt.asUintN(width, bigint):将BigInt包装为指定宽度(以比特为单位)的无符号整数。BigInt.asIntN(width, bigint):将BigInt包装为指定宽度(以比特为单位)的有符号整数。
三、示例
let uint64Value = BigInt.asUintN(64, BigInt("18446744073709551615")); // 最大64位无符号整数
console.log(uint64Value.toString()); // 输出: "18446744073709551615"let int64Value = BigInt.asIntN(64, BigInt("-9223372036854775808")); // 最小64位有符号整数
console.log(int64Value.toString()); // 输出: "-9223372036854775808"
小结
总之,BigInt数据类型增强了JavaScript处理大整数的能力,使得在开发中能够更精确地进行大量整数计算而无需担心溢出问题。
相关文章:
编程笔记 html5cssjs 072 JavaScrip BigInt数据类型
编程笔记 html5&css&js 072 JavaScrip BigInt数据类型 一、BigInt 数据类型二、BigInt 的创建和使用三、BigInt 操作与方法三、示例小结 JavaScript BigInt 数据类型是一种内置的数据类型,用于表示大于 Number.MAX_SAFE_INTEGER(即2^53 - 1&…...
matlab simulink 步进电机控制
1、内容简介 略 41-可以交流、咨询、答疑 2、内容说明 电动执行器定位控制在生产生活中具有广泛的应用,在使用搭载步进电机的电动执行器进行定位控制的时候,定位系统的定位精度和响应波形,会随着负载质量的变化而变化,这是由电…...
使用阿里云的IDaaS实现知行之桥EDI系统的单点登录
,在开始测试之前,需要确定用哪个信息作为“登陆用户的ID字段”。 这个字段用来在完成SSO登陆之后,用哪个信息将阿里云IDaaS的用户和知行之桥EDI系统的用户做对应。这里我们使用了 phonenumber 这个自定义属性。需要在阿里云做如下配置&#x…...
基于微服务的高考志愿智能辅助决策系统(附源码)
目录 一.引言 1、编写目的 2、系统功能概述 二.功能分析 三.微服务模块 1、微服务用户相关模块 (1)用户注册 (2)用户登录 (3)用户信息管理 (4)用户操作 2、微服务文件云存…...
LeetCode —— 137. 只出现一次的数字 II
😶🌫️😶🌫️😶🌫️😶🌫️Take your time ! 😶🌫️😶🌫️😶🌫️😶🌫️…...
pnpm、npm、yarn 包管理工具
1、npm 关键词:软件包管理器、命令行工具、一个社区和一个平台 npm(Node Package Manager)是一个用于Node.js环境的软件包管理器。它是一个命令行工具,用于安装、升级、删除和管理JavaScript软件包。npm最初是随同Node.js一起发布…...
微服务知识
1、概念 大型单体应用拆分成多个独立部署运行的微服务(解决并发问题) 2、特点 3、技术栈 4、微服务带来的问题 5、微服务的注册中心 服务注册与发现:微服务实例在启动时会向注册中心注册自己的信息…...
如何在微信搭建私域流量池?
A: ①给客户打标签 添加标签,多维度构建用户画像,精准发送消息。 ②群发信息 选择自定义时间,上传内容 (支持文字,图片) ,一键群发 。 ③建立专属素材库 将常用的话术、图片与文件录入至素材库,员工可随…...
MySQL原理(三)锁定机制(1)综述
一、介绍: 1、锁的本质 业务场景中存在共享资源,多个进程或线程需要竞争获取并处理共享资源,为了保证公平、可靠、结果正确等业务逻辑,要把并发执行的问题变为串行,串行时引入第三方锁当成谁有权限来操作共享资源的判…...
Qt知识点总结
将枚举类型转换为字符串 这里使用的在网络编程中,获取socket状态并显示的时候,遇到的一个问题 #include <QMetaEnum>// 将枚举类型转换为字符串 QMetaEnum metaEnum QMetaEnum::fromType<QAbstractSocket::SocketState>(); const char *c…...
什么是系统工程(字幕)13
0 00:00:00,670 --> 00:00:01,582 如果不加图 1 00:00:01,582 --> 00:00:02,130 怎么加 2 00:00:02,130 --> 00:00:03,225 我们来看一下 3 00:00:03,225 --> 00:00:03,590 你看 4 00:00:03,980 --> 00:00:06,720 右键点这个,添加元素 5 00:00:0…...
qt学习:Table widget控件
目录 头文件 实战 重新配置ui界面 添加头文件 在构造函数中添加初始化 显示方法 该实例是在sqlite项目上添加qt学习:QTSQL连接sqlite数据库增删改查-CSDN博客 头文件 #include <QTableWidgetItem> 实战 重新配置ui界面 用法介绍,可以双击…...
Android --- Content Provider是使用示例,通俗易懂
当两个应用程序之间需要共享数据时,可以通过 Content Provider 来实现。在这个示例中,我们将创建一个简单的 Content Provider,让 App_B 暴露人口总数的数据,并由 App_A 来获取这个数据。 首先,我们来创建一个简单的示…...
02-opencv简单实例效果和基本介绍-上
机器视觉概述 机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素…...
中科大计网学习记录笔记(一):Internet | 网络边缘
计算机网络 前言: 学习视频:中科大郑烇、杨坚全套《计算机网络(自顶向下方法 第7版,James F.Kurose,Keith W.Ross)》课程 该视频是B站非常著名的计网学习视频,但相信很多朋友和我一样在听完前面…...
Shell脚本——免交互
目录 一、Here Document免交互 1、免交互概述 2、语法格式 2.1示例:免交互方式实现对行数的统计,将要统计的内容置于标记EOF之间,直接将内容传给wc-l来统计 3、变量设定 ①变量图换成实际值 ②整行内容作为变量并输出结果 ③使输出内…...
【数据分享】1929-2023年全球站点的逐月最高气温数据(Shp\Excel\无需转发)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据! 之前我们分享过1929-2023年全球气象站…...
CentOS gui 图形界面显示文字乱码
一、现象 CentOS(CentOS 7.5)控制台下显示中文乱码: 或者通过X11 Forwarding远程显示CentOS的图形化程序文字乱码: 二、解决方法 安装中文语言包: yum install kde-l10n-Chinese 注:网上有些文章会推荐安…...
[Vue入门]Vue的使用:vue对象+data+el+插值表达式
总结性内容: 1.想让Vue工作,就必须创建一个Vue的实例,而且要传入一个配置对象 2.root容器中的代码依然符合html规范,只不过混入了一些特殊的Vue语法 3.root容器里的代码被称为Vue模板 <!DOCtype html> <html><head><meta charset"UTF-8">&l…...
Tomcat运维
目录 一、Tomcat简介 二、系统环境说明 1、关闭防火墙,selinux 2、安装JDK 3、安装Tomcat 三、Tomcat目录介绍 1、tomcat主目录介绍 2、webapps目录介绍 3、Tomcat配置介绍(conf) 4、Tomcat的管理 四、Tomcat 配置管理页面(了解) …...
Kafka 2.8.0到3.4.0滚动升级实录:单副本Topic的可用性挑战与ISR列表监控
Kafka集群升级中的单副本Topic风险治理:ISR监控与高可用实践 引言 在分布式消息系统的世界里,Kafka凭借其高吞吐、低延迟的特性成为企业级数据管道的首选。但当运维团队面临版本升级时,那些隐藏在配置细节中的"定时炸弹"往往成为…...
hccl 集合通信架构剖析:Ring-AllReduce 与通信-计算重叠设计
前言 分布式训练做多了会发现,多卡之间的通信往往比计算更吃时间。八张昇腾NPU跑一个LLaMA-70B,AllReduce在总耗时里能占30-40%,这个比例在卡数更多的时候还会继续涨。昇腾CANN的hccl(Huawei Collective Communication Library&am…...
CANN-昇腾NPU梯度累积-显存不够时怎么模拟大batch训练
大模型训练的最佳 batch size 通常在 1M-4M tokens。8 卡 Atlas 800I A2 的总显存 512GB,batch size 能开到 50 万 tokens 左右——不够。梯度累积让你用小 batch 跑多次前向,累积梯度后一次性更新,等效于大 batch 训练。 梯度累积的原理 标准…...
一站式跨平台资源下载神器:5分钟掌握高效网络资源管理
一站式跨平台资源下载神器:5分钟掌握高效网络资源管理 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在数字内容…...
如何在macOS上轻松运行Windows应用:Whisky终极使用指南
如何在macOS上轻松运行Windows应用:Whisky终极使用指南 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 想在Apple Silicon Mac上运行Windows软件,又不想安装笨…...
GTA V脚本开发入门:5步掌握ScriptHookV核心技术
GTA V脚本开发入门:5步掌握ScriptHookV核心技术 【免费下载链接】ScriptHookV An open source hook into GTAV for loading offline mods 项目地址: https://gitcode.com/gh_mirrors/sc/ScriptHookV 你是否想过为GTA V创建自己的游戏模组,但被复杂…...
DeepSeek / GLM / Kimi 网页只能聊天?这个 Star 500+ 的开源工具,直接一键把网页变 API
👉 这是一个或许对你有用的社群🐱 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料: 《项目实战(视频)》:从书中学,往事上…...
MoE混合专家系统原理与工程实践:稀疏激活如何实现大模型高效推理
1. 项目概述:当“参数规模”不再等于“实际计算量”你可能已经看过不少标题党文章,比如“GPT-4参数量突破1.8万亿!”——但真正值得细品的,是后半句:“它每处理一个词(token),只动用…...
从BJT到CMOS:运放偏置电流的前世今生,以及它对高阻抗传感器电路设计的实际影响
从BJT到CMOS:运放偏置电流的前世今生,以及它对高阻抗传感器电路设计的实际影响 在精密测量领域,运算放大器的偏置电流就像一位隐形的"电流小偷",悄无声息地影响着测量精度。想象一下,当你试图测量一个微弱的…...
国产工控机选型实战:从自主可控到边缘智能的工业应用解析
1. 项目概述:为什么我们需要关注国产工控机?如果你在工厂里负责过自动化产线,或者在能源、交通行业搞过设备监控,大概率遇到过这样的场景:产线上某台核心控制电脑突然蓝屏,或者某个数据采集模块因为电磁干扰…...
