19 lines
724 B
Haskell
19 lines
724 B
Haskell
module ByteUtil(unpackWord16, unpackWord32) where
|
|
|
|
import Data.Word
|
|
import Data.Int
|
|
import Data.Bits
|
|
|
|
unpackWord16 :: Word16 -> [Word8]
|
|
unpackWord16 v = [
|
|
fromIntegral (shiftR ((.&.) v (fromIntegral 0xFF00)) 8),
|
|
fromIntegral (shiftR ((.&.) v (fromIntegral 0x00FF)) 0)
|
|
]
|
|
|
|
unpackWord32 :: Word32 -> [Word8]
|
|
unpackWord32 v = [
|
|
fromIntegral (shiftR ((.&.) v (fromIntegral 0xFF000000)) 24),
|
|
fromIntegral (shiftR ((.&.) v (fromIntegral 0x00FF0000)) 16),
|
|
fromIntegral (shiftR ((.&.) v (fromIntegral 0x0000FF00)) 8),
|
|
fromIntegral (shiftR ((.&.) v (fromIntegral 0x000000FF)) 0)
|
|
] |