gpt4 book ai didi

javascript - 是否有计算或估计二进制整数位数的公式?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:29 24 4
gpt4 key购买 nike

ex : base 10(999) => 3 digits === base 2(1111100111) => 10 digits

我目前正在使用一个表来进行此估算,但它仍然限制在 base10 中的 15 位数字,因为在 JS 下我们仍然被 MAX_SAFE_INTEGER 阻止是下表(运行代码段以查看它)。

如何通过公式扩展此表,直到以 10 为底的 255 位数字?

const TDigits   = document.querySelector('#T-Digits tbody')
, MaxDigits = Number.MAX_SAFE_INTEGER.toString().length
;

var x9 = '9';

for (let n=1; n < MaxDigits; n++)
{
let newRow = TDigits.insertRow(-1)

newRow.insertCell(0).textContent = n
newRow.insertCell(1).textContent = (x9-0).toString(2).length

newRow.insertCell(2).textContent = Math.ceil(Math.log2(Math.pow(10,n)))

x9 += '9';
}
table { margin:1em}
table thead { background-color: cadetblue }
table td { text-align: center; padding: .2em .5em; border-bottom: 1px solid grey }
<table id="T-Digits">
<caption>Max digits corresponding</caption>
<thead>
<tr><td>base 10</td> <td>base 2</td><td> log </td></tr>
</thead>
<tbody>
<tr><td>0</td> <td>1</td><td>1</td></tr>
</tbody>
</table>

[编辑] 添加来自 Jaromanda X 的 Math.ceil(Math.log2(Math.pow(10,n))), ;)

最佳答案

for (n = 1; n < 256; n +=1 ) {
console.log(n, Math.ceil(Math.log2(Math.pow(10,n))));
}

据我所知,这些值是匹配的

关于javascript - 是否有计算或估计二进制整数位数的公式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56419461/

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