(.&.) :: a -> a -> a |
Bitwise "and" |
|
(.|.) :: a -> a -> a |
Bitwise "or" |
|
xor :: a -> a -> a |
Bitwise "xor" |
|
complement :: a -> a |
Reverse all the bits in the argument |
|
shift :: a -> Int -> a |
Signed shift the argument left by the specified number of bits.
Right shifts are specified by giving a negative value. |
|
rotate :: a -> Int -> a |
Signed rotate the argument left by the specified number of bits.
Right rotates are specified by giving a negative value. rotate is well defined only if bitSize is also well defined
(bitSize is undefined for Integer, for example).
|
|
bit :: Int -> a |
bit i is a value with the ith bit set |
|
setBit :: a -> Int -> a |
x `setBit` i is the same as x .|. bit i |
|
clearBit :: a -> Int -> a |
x `clearBit` i is the same as x .&. complement (bit i) |
|
complementBit :: a -> Int -> a |
x `complementBit` i is the same as x `xor` bit i |
|
testBit :: a -> Int -> Bool |
Return True if the nth bit of the argument is 1 |
|
bitSize :: a -> Int |
Return the number of bits in the type of the argument. The actual
value of the argument is ignored |
|
isSigned :: a -> Bool |
Return True if the argument is a signed type. The actual
value of the argument is ignored |