提示:您可在线编辑运行本教程的实例 - 运行实例,去试试!
将指定索引处的位设置为true。
//package com.nowjava;/**来自 nowjava.com - 时代Java**/ public class Main { public static void main(String[] argv) throws Exception { int bitset = 2; int bitIndex = 2; System.out.println(set(bitset, bitIndex)); } /** maximum index of a bitset (minimum index is 0) */ public static final int MAX_INDEX = 31; /** int with all bits set */ public static final int INT_MASK = 0xffffffff; /** * Sets the bit at the specified index to <code>true</code>. * * @param bitset * a bitset. * @param bitIndex * a bit index. * @return the bitset with the set bit. * @throws IndexOutOfBoundsException * if the specified index is negative or greater than * {@link #MAX_INDEX} */ public static int set(int bitset, int bitIndex) throws IndexOutOfBoundsException { checkIndexRange(bitIndex, MAX_INDEX); return bitset | (1 << bitIndex); } /*nowjava - 时代Java*/ /** * Sets the bits from the specified <tt>fromIndex</tt> (inclusive) to the * specified <tt>toIndex</tt> (exclusive) to <code>true</code>. * * @param bitset * @param fromIndex * index of the first bit to be set. * @param toIndex * index after the last bit to be set. * @return * @throws IndexOutOfBoundsException * if <tt>fromIndex</tt> is negative, * or <tt>toIndex</tt> is negative, or <tt>fromIndex</tt> is * larger than <tt>toIndex</tt>. * @throws IllegalArgumentException */ public static int set(int bitset, int fromIndex, int toIndex) throws IndexOutOfBoundsException, IllegalArgumentException { checkIndexRange(fromIndex, MAX_INDEX); checkIndexRange(toIndex, MAX_INDEX + 1); if (fromIndex > toIndex) throw new IllegalArgumentException( "fromIndex parameter must be lower or equal to toIndex parameter"); int mask = INT_MASK << fromIndex; mask &= INT_MASK >>> -toIndex; return bitset | mask; }