25 lines
634 B
Haskell
25 lines
634 B
Haskell
import Data.Bits
|
|
|
|
bitwise :: Int -> Int -> IO ()
|
|
bitwise a b =
|
|
mapM_
|
|
print
|
|
[ a .&. b
|
|
, a .|. b
|
|
, a `xor` b
|
|
, complement a
|
|
, shiftL a b -- left shift
|
|
, shiftR a b -- arithmetic right shift
|
|
, shift a b -- You can also use the "unified" shift function;
|
|
-- positive is for left shift, negative is for right shift
|
|
, shift a (-b)
|
|
, rotateL a b -- rotate left
|
|
, rotateR a b -- rotate right
|
|
, rotate a b -- You can also use the "unified" rotate function;
|
|
-- positive is for left rotate, negative is for right rotate
|
|
, rotate a (-b)
|
|
]
|
|
|
|
main :: IO ()
|
|
main = bitwise 255 170
|