Java examples for java.util:BitSet
Creates a short integer from a bitset
/*/*from w w w. j ava 2 s . c o m*/ * Copyright (c) 2012 The Broad Institute * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ //package com.java2s; import java.util.BitSet; public class Main { static final private byte NBITS_LONG_REPRESENTATION = 64; static final private byte NBITS_SHORT_REPRESENTATION = 16; /** * Creates a short integer from a bitset * * @param bitSet the bitset * @return a short from the bitset representation */ public static short shortFrom(final BitSet bitSet) { return (short) longFrom(bitSet, NBITS_SHORT_REPRESENTATION); } /** * Creates an long out of a bitset * * @param bitSet the bitset * @return a long from the bitset representation */ public static long longFrom(final BitSet bitSet) { return longFrom(bitSet, NBITS_LONG_REPRESENTATION); } /** * Cretes an integer with any number of bits (up to 64 -- long precision) from a bitset * * @param bitSet the bitset * @param nBits the number of bits to be used for this representation * @return an integer with nBits from the bitset representation */ public static long longFrom(final BitSet bitSet, final int nBits) { long number = 0; for (int bitIndex = bitSet.nextSetBit(0); bitIndex >= 0 && bitIndex <= nBits; bitIndex = bitSet .nextSetBit(bitIndex + 1)) number |= 1L << bitIndex; return number; } }