bit operations #
Equations
- Int.instComplement = { complement := Int.not }
Bitwise shift right.
Conceptually, this treats the integer as an infinite sequence of bits in two's complement and shifts the value to the right.
( 0b0111:Int) >>> 1 = 0b0011
( 0b1000:Int) >>> 1 = 0b0100
(-0b1000:Int) >>> 1 = -0b0100
(-0b0111:Int) >>> 1 = -0b0100
Equations
- (Int.ofNat n).shiftRight x = Int.ofNat (n >>> x)
- (Int.negSucc n).shiftRight x = Int.negSucc (n >>> x)