gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:40:42 25 4
gpt4 key购买 nike

在 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

之后你可以将 w1w2 中的 32 位字分别移动到低位字的高 2 位到高位字的低 2 位。

使用 d.getUint32() 的第二个参数可以控制字节顺序。

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

只是为了确保正确识别 Bergi 的评论。我的所有代码可能会像这样缩减为单行代码:

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

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

关于javascript - 如何将按位运算应用于 JS 数字的实际 IEEE 754 表示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24564460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com