2

私はこの質問を読んでいました、

しかし、5桁の電話番号を格納するのに17ビットしか必要とせず、1000個の番号を格納するのに合計が2128バイトになるという、aixの回答の一部を理解していませんでした。

このばかげた疑いで私を助けてください。

前もって感謝します...

4

2 に答える 2

4

最初の 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 バイトが必要です。

于 2012-06-24T17:20:00.957 に答える
2

10 5 =100000。ceil(log 2(100000))=17。

于 2012-06-24T17:14:29.747 に答える