| ⊦ bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes) + bytes2bits(bytes0)) = bits2uint(bytes2bits(bytes)) * 256 ^ n→i(# bytes0) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1), bytes = [], bytes0 = [], bytes2bits(bytes).first |
⊦ # bits0 ≠ 0 → bits2uint(bits + bits0) = bits2uint(bits) * 2 ^ n→i(# bits0) + bits2uint(bits0)
¬ # bytes2bits(bytes0) ≠ 0 ⊦ bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes) + bytes2bits(bytes0)) = bits2uint(bytes2bits(bytes)) * 256 ^ n→i(# bytes0) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1), bytes = [], bytes0 = [], bytes2bits(bytes).first
# bytes2bits(bytes0) ≠ 0 ⊦ bytes2bits(bytes) + bytes2bits(bytes0) = [], bits2uint(bytes2bits(bytes)) * 2 ^ n→i(# bytes2bits(bytes0)) + bits2uint(bytes2bits(bytes0)) = bits2uint(bytes2bits(bytes)) * 256 ^ n→i(# bytes0) + band(bits2int(bytes2bits(bytes0)), 256 ^ n→i(# bytes0) - 1), bytes = [], bytes0 = [], bytes2bits(bytes).first
Used terms: bytes2bits(bytes0), bytes2bits(bytes)