Here you can find the source of bitSet(byte[] bytes)
example:
byte: 50 binary: 0b110010 +--------+---+---+---+---+---+---+---+---+ | bits | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | +--------+---+---+---+---+---+---+---+---+ | bitset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | +--------+---+---+---+---+---+---+-------+ bitSet.toString(): {2, 3, 6}
Parameter | Description |
---|---|
bytes | bytes |
public static BitSet bitSet(byte[] bytes)
//package com.java2s; /*/*from w w w . j a va 2 s. co m*/ * Copyright 2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.util.BitSet; public class Main { /** * Create a BitSet instance,start index is 0 * <p> * example: * </p> * <pre> * byte: 50 * binary: 0b110010 * * +--------+---+---+---+---+---+---+---+---+ * | bits | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | * +--------+---+---+---+---+---+---+---+---+ * | bitset | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | * +--------+---+---+---+---+---+---+-------+ * * bitSet.toString(): {2, 3, 6} * </pre> * * @param bytes bytes * @return bitSet */ public static BitSet bitSet(byte[] bytes) { if (bytes == null) { return null; } BitSet bit = new BitSet(); int index = 0; for (byte aByte : bytes) { for (int j = 7; j >= 0; j--) { bit.set(index++, (aByte & (1 << j)) >>> j == 1); } } return bit; } }