如何将按位运算应用于 JS 数字的实际 IEEE 754 表示?

2023-12-12

在 JavaScript 中,每当您执行按位运算时,例如x << 2,在实际发生移位之前,64 位浮点表示形式会转换为 32 位无符号整数。我有兴趣将这种转换应用于实际的、未改变的 IEEE 754 位表示。

这怎么可能?


您可以尝试先将 JSNumber 转换为字节/整数,然后自行移动结果。

使用主要浏览器最新版本中可用的 TypedArray 内容:

var f = new Float64Array( 1 );    // creating typed array to contain single 64-bit IEEE754
f.set( [ 1.0 ], 0 );              // transferring JSNumber for untyped array to first element of typed one
var d = new DataView( f.buffer ); // creating raw view on content in typed array
var w1 = d.getUint32( 0 );        // accessing bytes 0 to 3 of typed array
var w2 = d.getUint32( 4 );        // accessing bytes 4 to 7 of typed array

之后你可以将 32 位字移入w1 and w2自己单独将低字中的高 2 位传送到高字的低 2 位。

可以通过使用第二个参数来控制字节序d.getUint32().

阅读更多:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays

只是为了确保贝尔吉的评论得到正确认可。我所有的代码可能会简化为单行,如下所示:

var d = new Uint32Array( new Float64Array( [1.0] ).buffer );

d[0] and d[1]那么适合访问包含的 32 位字。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将按位运算应用于 JS 数字的实际 IEEE 754 表示? 的相关文章

随机推荐

  • 如何使用 BasicAuth 保护自定义端点?

    假设我已使用 BasicAuth 启用了对资源的身份验证 class MyBasicAuth BasicAuth def check auth self username password allowed roles resource me
  • 如何使用 PHP Mysql 创建总账/T 型账户

    我正在尝试创建一个复式记账财务会计系统 我已经完成了数据库的设计 请检查此链接以查看我的数据库的图表 http i39 tinypic com juhbv6 png 我已经尝试了很多开发 mysql 查询来生成总账 但我没有任何进展 我所能
  • XDocument:将 XML 保存到没有 BOM 的文件

    我正在生成一个UTF 8 XML文件使用XDocument XDocument xml document new XDocument new XDeclaration 1 0 utf 8 null new XElement ROOT NAM
  • Microsoft CCI - 编写编译器的资源和参考

    前一段时间 我在研究编译器 我使用过System Reflection从我的 AST 生成代码 IL 现在 我有了另一个我想要开发的编译器的想法 这将是另一个宠物项目 不会在生产代码中使用任何内容 至少现在不会 如您所知 与生产代码相比 宠
  • 从 Android 通知加载 Xamarin Forms 页面

    我正在尝试从 Android 通知加载 Xamarin Forms 页面 我真的对 Android 方面迷失了方向 我的大部分代码都是从教程和博客文章中拼凑而成的 然而 似乎没有什么真正能够完全涵盖这种情况 我已经实现了一个非常简单的接口与
  • 在文件系统中存储图像时,使用相对路径还是绝对路径?

    我正在开发一个网络应用程序 我决定 在阅读了许多关于SO的文章之后 将实际图像存储在文件系统中并将元数据存储在数据库中 我应该存储相对路径还是绝对路径 我可以想到每个选择的一些优点 绝对 Pros 对于读取数据库的其他应用程序来说 该文件的
  • Teradata 与 Oracle DUAL 的等效项是什么

    在 Oracle 中 我们可以编写此代码以使用SELECT陈述 SELECT 1 AS x FROM dual Teradata 的同等产品是什么 一般不需要这样的表 在大多数情况下 Teradata 数据库中实际上不需要任何表 以下是有效
  • 如何在 cudaMemcpyPeerAsync() 中定义目标设备流?

    我正在使用 cudaMemcpyPeerAsync 从 gpu0 到 gpu1 执行异步 memcpy cudaMemcpyAsync 提供用于 gpu0 的流选项 但不用于 gpu1 我也可以以某种方式定义接收设备的流吗 我使用 Open
  • 由于对象被密封或冻结,因此无法为颜色属性设置动画

    我见过其他类似的问题 但他们似乎总是在 XAML 中这样做 因为这是在事件处理程序中 我需要在 C 中找出答案 基本上我只需要发送菜单项闪烁红色 ColorAnimation ca new ColorAnimation From Color
  • 通过 Interop 为 Microsoft Access 创建宏

    是否可以使用 Microsoft Access 中的 Interop 库以与 Word Excel 或 PowerPoint 类似的方式使用 C 创建新宏 在其他应用程序中 您可以访问Microsoft Vbe Interop VBComp
  • 使用 Powershell 更新 Azure 网站实例大小(小、中、大)

    有没有办法扩展 Azure 网站实例大小 不是实例计数 使用 PowerShell 我还没有找到路 我知道可以使用 Azure CLI 或门户来完成此操作 但我希望能够使用 PowerShell 来完成此操作 这可能吗 我想要update现
  • 视频处理帧间预测[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我需要在 Matlab 中对一组 30 帧进行视频处理的 帧间预测 和 运动补偿 我正在处理母女框架 到目前为止我所做的是获取第一帧并将其分为 8x8 块 进行 DCT 量化它
  • 该表违反了哪种范式?

    考虑这个表 name hobby1 hobby2 hobby3 kris ball swim dance james eat sing sleep amy swim eat watch 兴趣爱好的类型没有优先顺序 因此所有兴趣爱好都属于同一
  • 定期画线

    我现在的情况是 我想在一段时间内一条一条地画线 我尝试使用线程来做到这一点 但它对我不起作用 目标是我有 5 行 这些线应该一根接一根地绘制 延迟 5 秒 在 onDraw 方法中使用 Thread sleep 5000 但所有线都是在 5
  • 使用 HTML 表单验证仅验证可见字段?

    我有两组表单字段 每组中都有一些具有必填属性的字段 但是 根据用户选择的内容 一组可能会被隐藏 并且这些字段不应包含在 HTML 表单验证中 到目前为止 如果我的表单中只有一个可见容器并且我填充了所有必填字段 我的表单将不会提交 由于某种原
  • Apache POI:如何添加对角边框

    我想用Apache POI画画Diagonal Border但我找不到任何函数可以支持该功能 我试过这个设置边框对角线但它不起作用 XSSFSheetConditionalFormatting my cond format layer my
  • Cakephp:插入tinyint字段时。仅获取“0”或“1”

    我是 cakephp 的菜鸟 从事开源项目 问题是 当我为某个表插入一个值 is adjusted tinyint 时 我的 php 代码成功执行 但该表仅采用 0 或 1 作为其值 示例代码 reward ta customer rewa
  • 使用 iPhone 进行移动设备管理

    任何人都可以给我提供一些有关 iOS4 的 iphone 设备管理的信息吗 1 如何实现它以及它将如何工作 2 它是否可以仅与企业许可证持有者一起使用 或者我们可以简单地实施开发人员许可证 3 任何具体文档或帮助 Thanks 1 如何实现
  • Swift:将图像添加到 CAShapeLayer

    我有一个带有填充颜色的 CAShapeLayer 并且想要在此形状的中心添加一个图标 var shape CAShapeLayer shape fillColor UIColor white 0 90 alpha 1 CGColor var
  • 如何将按位运算应用于 JS 数字的实际 IEEE 754 表示?

    在 JavaScript 中 每当您执行按位运算时 例如x lt lt 2 在实际发生移位之前 64 位浮点表示形式会转换为 32 位无符号整数 我有兴趣将这种转换应用于实际的 未改变的 IEEE 754 位表示 这怎么可能 您可以尝试先将