集册 Java实例教程 将指定索引处的位设置为true。

将指定索引处的位设置为true。

欢马劈雪     最近更新时间:2020-01-02 10:19:05

428
提示:您可在线编辑运行本教程的实例 - 运行实例,去试试!
将指定索引处的位设置为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;

    }


    
展开阅读全文