1

这里这里没有bitLength()记录方法......如何检查本机 BigInt 值的位数?

我正在寻找一种“直接方式”,通过一些内部信息......或者任何更快的转换总是x.toString(2)


笔记

  • 不理想,但一种中间解决方法(似乎更快toString())是使用这个基于log2(x)的数学公式......适应 BigInt。

  • 这个lib 开发了一个特定integerLogarithm(value, base)的计算log2...并实现一个bitLength()方法(没有Math.floor()哼...),但是有很多依赖关系,它是一头大象...

4

1 回答 1

1

这是一种 hacky(但简单)的方式,将其转换为字符串:

num.toString(2).length;

const x = 324298349892398423892439832498423989842394839842398432243234243942738742378942379824739879842379437942379423792437742397942379824379842397824312n;

console.log(x.toString(2));

const bits = x.toString(2).length;

console.log(bits);

于 2019-02-19T02:57:45.687 回答