0

新しい文字/整数を作成しようとしています。その char/int について私が知っているのは、最初の 6 ビットだけです。という変数があります

number

これは非常に大きな数で、24 ビットで構成されています。この数値で toBinaryString メソッドを利用したい

bits = Integer.toBinaryString(number);

これで、変数番号のビットを含む変数ビットができました。現時点では、この文字列を 4 つに分割したいので、整数/文字のビットを表す 4、6 文字の文字列が残っています。これらのビットを知っている数字または文字を作成するにはどうすればよいですか?

すべての詳細を説明するために、例を挙げましょう。

私は持っている

number = "abc" // 011000010110001001100011 as binary representation

ここで、最初の 6 ビット (011000) で新しい整数を作成したいと考えています。次の 6 ビットの別の整数 (010110) など...

4

1 に答える 1

4

なぜ文字列として欲しいのですか?本当にビットシフト操作が必要なようです:

number = ...;

int bottomBits = number & 0x3f;
int middleBits = (number >>> 6) & 0x3f;
int upperBits = (number >>> 12) & 0x3f;

最下位bottomBitsの6 ビット、次にmiddleBits(upperBits最上位のビット、バイナリ文字列の最初の 6 ビット) も同様です。

于 2013-07-20T20:36:13.890 に答える