2 for (var i = 1; i < 32; i += 1)
6 # checks whether bit <b> is set in number <n>
7 var test = func(n, b) {
9 return int(n) != int(n / 2) * 2;
13 # returns number <n> with bit <b> set
14 var set = func(n, b) n + !test(n, b) * bit[b];
17 # returns number <n> with bit <b> cleared
18 var clear = func(n, b) n - test(n, b) * bit[b];
21 # returns number <n> with bit <b> toggled
22 var toggle = func(n, b) test(n, b) ? n - bit[b] : n + bit[b];
25 # returns number <n> with bit <b> set to value <v>
26 var switch = func(n, b, v) n - (test(n, b) - !!v) * bit[b];
29 # returns number <n> as bit string, zero-padded to <len> digits:
30 # bits.string(6) -> "110"
31 # bits.string(6, 8) -> "00000110"
32 var string = func(n, len = 1) {
39 for (var i = size(s); i < len; i += 1)
45 # returns bit string <s> as number: bits.value("110") -> 6
49 for (var i = 0; i < len; i += 1)
50 n += n + (s[i] != `0`);