var BI_RM = "0123456789abcdefghijklmnopqrstuvwxyz";
|
export function int2char(n) {
|
return BI_RM.charAt(n);
|
}
|
//#region BIT_OPERATIONS
|
// (public) this & a
|
export function op_and(x, y) {
|
return x & y;
|
}
|
// (public) this | a
|
export function op_or(x, y) {
|
return x | y;
|
}
|
// (public) this ^ a
|
export function op_xor(x, y) {
|
return x ^ y;
|
}
|
// (public) this & ~a
|
export function op_andnot(x, y) {
|
return x & ~y;
|
}
|
// return index of lowest 1-bit in x, x < 2^31
|
export function lbit(x) {
|
if (x == 0) {
|
return -1;
|
}
|
var r = 0;
|
if ((x & 0xffff) == 0) {
|
x >>= 16;
|
r += 16;
|
}
|
if ((x & 0xff) == 0) {
|
x >>= 8;
|
r += 8;
|
}
|
if ((x & 0xf) == 0) {
|
x >>= 4;
|
r += 4;
|
}
|
if ((x & 3) == 0) {
|
x >>= 2;
|
r += 2;
|
}
|
if ((x & 1) == 0) {
|
++r;
|
}
|
return r;
|
}
|
// return number of 1 bits in x
|
export function cbit(x) {
|
var r = 0;
|
while (x != 0) {
|
x &= x - 1;
|
++r;
|
}
|
return r;
|
}
|
//#endregion BIT_OPERATIONS
|