2014-04-17 2 views
4

자바의 bitSet에 정수의 바이너리 표현식을 입력하는 방법은 무엇입니까?자바의 bitSet에 정수의 바이너리 표현식을 입력하는 방법

이 기능이 거기에있다, 나는 비트 세트에 1111를 넣어 원하는 a = 15 말?

+0

복제본 http://stackoverflow.com/questions/2473597/bitset-to-and-from-integer-long – slaadvak

+0

@slaadvak 관련 질문에 대한 이후 답변 중 하나는 "BitSet.valueOf (long []) 및 BitSet.toLongArray() "를 참조하십시오. –

답변

5

BitSet

주어진 모든 비트를 포함하는 새로운 비트 세트를 돌려 고정 valueOf(long[]) 방법이있다) = 비트 세트로 결과를 추가 긴 배열.

그래서 긴 하나 배열, 당신은 단지 하나의 int 값에서 BitSet을받을 필요가 있다면이 갈망와 배열 등 128 비트,

이있을 것이다, 64 비트를 가지고있는 것처럼 사용합니다 그래서

Integer value = 42; 
System.out.println(Integer.toBinaryString(value)); 
BitSet bitSet = BitSet.valueOf(new long[] { value }); 
System.out.println(bitSet); 

그것은 즉

101010 
{1, 3, 5} 

은 권리에서 인쇄 위의 표현에서 왼쪽으로, 2, 4 및 6 비트가 설정됩니다.

+0

bitSet의 의미는 {1,3,5}입니까? ..... – user3495562

+0

@ user3495562 내부를 모르겠습니다. 이것은 설정된 비트의 인덱스를 나타내는 '문자열'표현입니다. –

1

java에서 이것을 수행 할 수 있습니다! =)

int value = 10; //0b1010 
    String bits = Integer.toBinaryString(value); //1010 
    BitSet bs = new BitSet(bits.length()); 

나서

for (int i = 0; i < bits.length(); i++) { 
     if (bits.charAt(i) == '1') { 
      bs.set(i); 
     } else { 
      bs.clear(i); 
     } 
    } 
    System.out.println(bs); //{0, 2} so 0th index and 2nd index are set. 
+0

감사합니다 그럼이 문자열을 bitSet에 넣는 방법? – user3495562

+0

for 루프를 사용하여 bitSet에 넣는 방법은 무엇입니까? – user3495562

+0

그건 한 가지 방법입니다! @ user3495562 =) for (int i = 0; i bezzoon

관련 문제