BitSet
(java.util.BitSet)
を使うのはいかがでしょうか。
下記のサンプルは、シフト演算の例です。
lang
1// import java.util.BitSet;
2
3BitSet bits = new BitSet();
4bits.set(3000);
5bits.set(8190);
6System.out.println(bits); // => {3000, 8190}
7BitSet shifted = bits.get(1, bits.length());
8System.out.println(shifted); // => {2999, 8189}
9System.out.println(shifted.toByteArray().length); // => 1024
参考URL:
java.util.BitSet - Java SE 8 APIドキュメント
Shifting a Java BitSet - Stack Overflow
(追記)
BitSet
をBigInteger
に変換するには、例えばこのようにすると良いです。
ちゃんとテストしていないので、実際に使うときにはご注意ください。
バイト配列の先頭は、常に符号を正にするために余分に1バイト空けています。
lang
1static BigInteger toBigInteger(BitSet bits) {
2 byte[] bytes = new byte[bits.size() + 1];
3 int i = bytes.length;
4 for (byte b : bits.toByteArray()) {
5 --i;
6 bytes[i] = (byte)(b & 0xFF);
7 }
8 return new BigInteger(bytes);
9}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/02/07 06:01
退会済みユーザー
2015/02/07 06:06
2015/02/07 14:16
退会済みユーザー
2015/02/07 15:04
2015/02/07 21:48
退会済みユーザー
2015/02/08 11:59
2015/02/08 12:08
退会済みユーザー
2015/02/10 03:22