10111、100011、11101111などのバイナリ コードがあります。これらのコードを格納するために必要な最小サイズを確保するには、どのデータ構造を使用する必要がありますか?
上記のバイナリコードに相当する10進数を格納するよりも必要なサイズが大きくなるため、文字列配列は使用できません。
10111、100011、11101111などのバイナリ コードがあります。これらのコードを格納するために必要な最小サイズを確保するには、どのデータ構造を使用する必要がありますか?
上記のバイナリコードに相当する10進数を格納するよりも必要なサイズが大きくなるため、文字列配列は使用できません。
java.util.BitSet
長さが固定されていない場合に備えて設計されています。
コードの長さに応じて、int
またはを使用しますlong
。
それらが短い場合は、 , , を使用しますbyte
(int
どのlong
くらい短いかによって異なります)。
もう少し長くなる場合は、 、 、または の配列を使用byte
しint
ますlong
。たとえば、256 ビット コードを格納する必要がある場合は、long[4]
.
格納する必要があるコードの長さが大きく異なる場合はlength
、ビット数を指定するメンバーを持つクラスとbyte
、それらを格納するための、、、、、またはメンバー (サイズと必要な粒度に応じて)のいずれかを検討できます。 )。または、できる限り多くを詰め込もうとしている場合は、コード内のビット数を保持するために、ストレージ領域からいくつかのビットを取っておくことができます。int
long
byte[]
int[]
long[]
各バイナリ コードは、8 ビット (1 バイト) ごとに分割できます。テールが 8 ビット未満の場合の処理方法を定義する必要があります。バイト配列は、ここで各部分を格納するためにうまく機能するはずです。