我忘记了如何这样做。如何弄清楚使用某个字母表的128位字符串的要求?

也就是说,我想使用字母表的10个数字来生成UUID(128位)值。我需要多少个数字,以及一般方程是什么,所以我可以为任何大小的任何字母都弄清楚这个字母?

任何n位值与任何x字母字母表的等式是什么?

我这样做的方式是猜测和慢慢迭代,直到我到达近距号之前。对于10的力量,它很容易:

Math.pow(2, 128)
3.402823669209385e+38
Math.pow(10, 39)
1e+39
.

对于其他数字,猜测需要一点。我很乐意知道这方面。

有帮助吗?

解决方案

估计表示 $ 128 $ 比特号的十进制数字的数量您使用logarithms到base $ 10 $

$ 128 \ times \ log_ {10}(2)\约38.53 $

所以你需要 $ 39 $ 十进制数字来表示 $ 128 $ 位编号。

在一般的情况下,对于带 $ n $ 符号的“字母表”,您需要找到 $ 128的值Times \ log_n(2)$ ,然后将其转到下一个整数。

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top