var narr: Bytes
init do
- for x in [0 .. narr.length[ do narr[x] = 0xFFu8
+ for x in [0 .. narr.length[ do narr[x] = 0xFF
end
fun [](pos: Int): Bool do
pos -= 2
- return (narr[pos / 8] & (1u8 << (7 - pos % 8))) != 0u8
+ return (narr[pos / 8] & (1 << (7 - pos % 8))) != 0
end
fun []=(pos: Int, val: Bool) do
pos -= 2
if val then
- narr[pos / 8] |= 1u8 << (7 - pos % 8)
+ narr[pos / 8] |= 1 << (7 - pos % 8)
else
- narr[pos / 8] &= 0xFFu8 - (1u8 << (7 - pos % 8))
+ narr[pos / 8] &= 0xFF - (1 << (7 - pos % 8))
end
end
end
do
var count = 0
var b_arrsz = ((n - 1).to_f / 8.0).ceil.to_i
- var bitarr = new Bitarray(new Bytes(new NativeString(b_arrsz), b_arrsz, b_arrsz))
+ var bitarr = new Bitarray(new Bytes(new CString(b_arrsz), b_arrsz, b_arrsz))
for i in [2 .. n[ do
# If self is already false, then no need to check for multiples
if not bitarr[i] then continue