Convert BitSet to int

Possible duplicate:
BitSet with integer / length

How to convert a BitSet class class to int (do I always have Bitset (8)? Is there any simple way, or do I need to iterate over the bits?

+5
source share
3 answers

That should do it ...

public static int bitSetToInt(BitSet bitSet)
{
    int bitInteger = 0;
    for(int i = 0 ; i < 32; i++)
        if(bitSet.get(i))
            bitInteger |= (1 << i);
    return bitInteger;
}

I believe that one could use nextSetBitto make it more efficient, but this excess level will significantly increase overhead than help ...

+5
source

Try:

    int result = 0 ;
    for(int i = 0 ; i < bitSet.length() ; i++){
        if(bitSet.get(i)){
            result |= (1 << i);
        }
    }
    result &= Integer.MAX_VALUE;
    return result;
+2
source

api, :

public static void main(String[] args) {
        BitSet bs = new BitSet();
        bs.set( 5 );
        System.out.println( bs );
        int res = 0, pow = 1;

        for ( int i = 0 ; i < 32 ; i++ , pow <<= 1 ) {
            if ( bs.get( i ) ) {
                res |= pow;
            }
        }
        System.out.println( "" + res );
    }
+1

All Articles