@@ -0,0 +1,36 @@
3+module Data.Word.Util where
8+w8to32 :: Word8 -> Word8 -> Word8 -> Word8 -> Word32
9+w8to32 w0s w1s w2s w3s =
10+ (w0 `shiftL` 24) .|. (w1 `shiftL` 16) .|. (w2 `shiftL` 8) .|. w3
12+ w0 = fromIntegral w0s
13+ w1 = fromIntegral w1s
14+ w2 = fromIntegral w2s
15+ w3 = fromIntegral w3s
17+w8to16 :: Word8 -> Word8 -> Word16
19+ (w0 `shiftL` 8) .|. w1
21+ w0 = fromIntegral w0s
22+ w1 = fromIntegral w1s
24+w16to32 :: Word16 -> Word16 -> Word32
26+ (w0 `shiftL` 16) .|. w1
28+ w0 = fromIntegral w0s
29+ w1 = fromIntegral w1s
31+w32to64 :: Word32 -> Word32 -> Word64
33+ (w0 `shiftL` 32) .|. w1
35+ w0 = fromIntegral w0s
36+ w1 = fromIntegral w1s