相关疑难解决方法(0)

在JS中读/写浮点字节

有什么办法可以在JS中读取浮点值的字节吗?我需要的是将原始FLOAT或DOUBLE值写入我需要制作的二进制格式,那么有没有办法获得逐字节的IEEE 754表示?当然,同样的写作问题.

javascript math floating-point serialization ieee-754

21
推荐指数
3
解决办法
2万
查看次数

有没有办法在它的64位浮点IEEE754表示中看到一个数字

Javascript根据规范将所有数字存储为双精度64位格式IEEE 754值:

Number类型具有18437736874454810627(即2 64 -2 53 +3)个值,表示IEEE标准二进制浮点运算中指定的双精度64位格式IEEE 754值

有没有办法在Javascript中查看此表单中的数字?

javascript binary ieee-754

7
推荐指数
1
解决办法
320
查看次数

JavaScript:将52位整数转换为20位和32位整数

在其他可以代表64位整数的语言中,可以很容易地做到这一点......

如何在两个32位整数中存储64位整数并再次转换回来

如何在Ruby中以两个32位整数存储64位整数

// convert 64-bit n to two 32-bit x and y
x = (n & 0xFFFFFFFF00000000) >> 32
y =  n & 0xFFFFFFFF
Run Code Online (Sandbox Code Playgroud)

但JavaScript不能代表64位整数.它只能代表52位整数而不会出现问题.

现在这意味着无法将64位整数转换为两个32位整数,因为它甚至不可能首先具有64位整数.

但是,我们还有52位.我的问题是:如何在JavaScript中将这个52位整数分成两个32位整数(20个高位和32个低位)

有人建议像上面的位操作代码在JavaScript中进行20位和32位拆分吗?

相关: 由位操作产生的32位JavaScript数如何转换回64位数

javascript bit-manipulation

5
推荐指数
1
解决办法
2653
查看次数

将两个 Uint32Array 值转换为 Javascript 数字

我从这里找到了一个代码,它将 Javascript 数字转换为内部 IEEE 表示,作为两个 Uint32 值:

function DoubleToIEEE(f)
{
  var buf = new ArrayBuffer(8);
  (new Float64Array(buf))[0] = f;
  return [ (new Uint32Array(buf))[0] ,(new Uint32Array(buf))[1] ];
}
Run Code Online (Sandbox Code Playgroud)

如何将返回值转换回 Javascript 数字?这边走:

var number = -10.3245535;
var ieee = DoubleToIEEE(number)
var number_again = IEEEtoDouble(ieee);
// number and number_again should be the same (if ever possible)
Run Code Online (Sandbox Code Playgroud)

javascript types numbers

5
推荐指数
2
解决办法
2591
查看次数

javascript(类java)哈希码实现

以下代码是我对相当通用的 javascript 哈希代码实现的尝试。我计划将此代码与哈希表实现(例如 jshashtable)结合使用,该哈希表实现使用 hashCode() (如果它是为键定义的)。我尝试严格遵守 java 的数字、字符串和数组的哈希码实现。

问题:

  • 此实现在正确性或性能方面是否存在任何问题?
  • 是否有任何预先存在的哈希码实现可以执行相同(或大致相同)的操作?
  • 除了 jshashtable 之外,是否还有其他哈希表实现以我还应该考虑的相同方式利用 hashCode() 和 equals() ?

注意:我知道下面的代码可以利用其他库,例如下划线和 jquery,但我不希望在我的实现中使用任何第三方依赖。这并不是说我对哈希代码库不感兴趣,它们本身可能依赖于 jquery、下划线等。

/**
* Computes a hash code for an object based on a given subset of its fields 
* @param obj any type
* @param keys an array of strings representing some subset of the keys in obj or undefined
* @returns {Number} a java-like hash code for obj based on the hash codes of a subset of its fields …
Run Code Online (Sandbox Code Playgroud)

javascript hash hashtable hashcode

5
推荐指数
0
解决办法
966
查看次数

JavaScript从实数和整数中计算哈希码

嗨,我需要函数来计算从数字(实数双精度)和整数的唯一整数.

尝试解释我正在开发javascript中的GIS应用程序,我正在使用复杂的矢量对象,如polygon(点对象数组,环中有两个坐标)和点数组.我需要快速算法来识别元素已被更改它必须非常快,因为我的矢量对象是千点的集合.在C#中,我使用按位运算XOR从坐标计算哈希码.

但是javascript将按位运算中的所有操作数转换为整数,但我需要在c#way(binnary)中按位置应用之前将双精度转换为整数.在反射器中,我看到c#计算哈希码这样的双倍,我需要这个函数在javascript中尽可能快.

public override unsafe int GetHashCode() //from System.Double
{
    double num = this;
    if (num == 0.0)
    {
        return 0;
    }
    long num2 = *((long*) &num);
    return (((int) num2) ^ ((int) (num2 >> 32)));
}
Run Code Online (Sandbox Code Playgroud)

例:

var rotation = function (n) {
    n = (n >> 1) | ((n & 0x001) << 31);
    return n;
}

var x: number = 1;
var y: number = 5;

var hash = x ^ rotation(y); // result is -2147483645

var x1: …
Run Code Online (Sandbox Code Playgroud)

javascript html5 typescript

5
推荐指数
1
解决办法
946
查看次数