我正在读这个问题,
但不明白aix的答案的某些部分,即它如何只需要17位来存储5位电话号码以及总数如何变成2128字节来存储1000个号码。
请帮我解决这个愚蠢的疑问。
提前致谢...
前 5 位数字应存储一次,因此,由于 5 位数字表示十进制数 0-99999 之间的数字,因此您至少需要将其存储为二进制。
现在第一个可以容纳 99999 个数字的二进制值是 131072,即 2^17。因此 17 位用于公共前缀。
现在您需要为每个数字的最低部分存储 1000 个 5 位数字。与以前相同的方法。每个数字 17 位 = 17000 位。
Total: 17000 + 17 = 17017 bits。
每个字节有 8 位,所以
17017/8 = 2127.125。
您至少需要2128 字节。
| 归档时间: |
|
| 查看次数: |
403 次 |
| 最近记录: |