//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;
}
/**
* Throws an {@link IndexOutOfBoundsException} if the given bit index is
* negative or if it the second argument is <code>true</code> also if the
/**代码未完, 请加载全部代码(NowJava.com).**/
本文系作者在时代Java发表,未经许可,不得转载。如有侵权,请联系nowjava@qq.com删除。