Here you can find the source of setBitmapRange(long[] bitmap, int start, int end)
Parameter | Description |
---|---|
bitmap | array of words to be modified |
start | first index to be modified (inclusive) |
end | last index to be modified (exclusive) |
public static void setBitmapRange(long[] bitmap, int start, int end)
//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; } }