例如:基数 10(999) => 3 位数字 === 基数 2(1111100111) => 10 位数字
我目前正在使用一个表来进行这个估计,但它仍然限制在 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>
慕盖茨4494581
一只名叫tom的猫
相关分类