私はこの質問を読んでいました、
しかし、5桁の電話番号を格納するのに17ビットしか必要とせず、1000個の番号を格納するのに合計が2128バイトになるという、aixの回答の一部を理解していませんでした。
このばかげた疑いで私を助けてください。
前もって感謝します...
最初の 5 桁は一度保存する必要があるため、5 桁は 10 進数で 0 ~ 99999 の数値を意味するため、少なくともこれを 2 進数で保存する必要があります。
99999 個の数値を適合させる最初のバイナリ値は 131072 で、これは 2^17 です。したがって、共通プレフィックスには 17 ビットが使用されます。
ここで、すべての数字の最下位部分に 1000 個の 5 桁の数字を格納する必要があります。以前と同じアプローチ。数値あたり 17 ビット = 17000 ビット。
Total: 17000 + 17 = 17017 bits
.
各バイトは 8 ビットなので、
17017/8 = 2127.125
.
少なくとも2128 バイトが必要です。
10 5 =100000。ceil(log 2(100000))=17。