Java Bit Set setBitmapRange(long[] bitmap, int start, int end)

Here you can find the source of setBitmapRange(long[] bitmap, int start, int end)

Description

set bits at start, start+1,..., end-1

License

Apache License

Parameter

Parameter Description
bitmap array of words to be modified
start first index to be modified (inclusive)
end last index to be modified (exclusive)

Declaration

public static void setBitmapRange(long[] bitmap, int start, int end) 

Method Source Code

//package com.java2s;
/*//from  ww w  . ja v  a 2s.  c om
 * (c) the authors Licensed under the Apache License, Version 2.0.
 */

public class Main {
    /**
     * set bits at start, start+1,..., end-1
     *
     * @param bitmap array of words to be modified
     * @param start first index to be modified (inclusive)
     * @param end last index to be modified (exclusive)
     */
    public static void setBitmapRange(long[] bitmap, int start, int end) {
        if (start == end) {
            return;
        }
        int firstword = start / 64;
        int endword = (end - 1) / 64;
        if (firstword == endword) {
            bitmap[firstword] |= (~0L << start) & (~0L >>> -end);
            return;
        }
        bitmap[firstword] |= ~0L << start;
        for (int i = firstword + 1; i < endword; i++) {
            bitmap[i] = ~0L;
        }
        bitmap[endword] |= ~0L >>> -end;
    }
}

Related

  1. setBitBiInt(int b0, int b1, int value, int original)
  2. setBitByPos(byte byt, boolean bool, int pos)
  3. setBitInInt(int bits, int bitIndex, boolean flag)
  4. setBitInLong(long l, long n, int v)
  5. setBitLE(byte[] data, int index)
  6. setBitmapRangeAndCardinalityChange(long[] bitmap, int start, int end)
  7. setBitRange(final int val, final int start, final int len, final int newVal)
  8. setBits(byte in, byte data, int position, int fillBits)
  9. setBits(final byte value, final int bitMask, final boolean val)