| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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
|