Data.Word
Copyright | (c) The University of Glasgow 2001 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | [email protected] |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell2010 |
Description
Unsigned integer types.
Unsigned integral types
A Word
is an unsigned integral type, with the same size as Int
.
Instances
Bounded Word | Since: base-2.1 |
Enum Word | Since: base-2.1 |
Eq Word | |
Integral Word | Since: base-2.1 |
Data Word | Since: base-4.0.0.0 |
Defined in Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Word -> c Word Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Word Source toConstr :: Word -> Constr Source dataTypeOf :: Word -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Word) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Word) Source gmapT :: (forall b. Data b => b -> b) -> Word -> Word Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Word -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Word -> r Source gmapQ :: (forall d. Data d => d -> u) -> Word -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Word -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Word -> m Word Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Word -> m Word Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Word -> m Word Source | |
Num Word | Since: base-2.1 |
Ord Word | |
Read Word | Since: base-4.5.0.0 |
Real Word | Since: base-2.1 |
Defined in GHC.Real MethodstoRational :: Word -> Rational Source | |
Show Word | Since: base-2.1 |
Ix Word | Since: base-4.6.0.0 |
FiniteBits Word | Since: base-4.6.0.0 |
Defined in Data.Bits MethodsfiniteBitSize :: Word -> Int Source countLeadingZeros :: Word -> Int Source countTrailingZeros :: Word -> Int Source | |
Bits Word | Since: base-2.1 |
Defined in Data.Bits Methods(.&.) :: Word -> Word -> Word Source (.|.) :: Word -> Word -> Word Source xor :: Word -> Word -> Word Source complement :: Word -> Word Source shift :: Word -> Int -> Word Source rotate :: Word -> Int -> Word Source setBit :: Word -> Int -> Word Source clearBit :: Word -> Int -> Word Source complementBit :: Word -> Int -> Word Source testBit :: Word -> Int -> Bool Source bitSizeMaybe :: Word -> Maybe Int Source isSigned :: Word -> Bool Source shiftL :: Word -> Int -> Word Source unsafeShiftL :: Word -> Int -> Word Source shiftR :: Word -> Int -> Word Source unsafeShiftR :: Word -> Int -> Word Source rotateL :: Word -> Int -> Word Source | |
Storable Word | Since: base-2.1 |
Defined in Foreign.Storable | |
PrintfArg Word | Since: base-2.1 |
Defined in Text.Printf | |
Generic1 (URec Word :: k -> Type) | Since: base-4.9.0.0 |
Foldable (UWord :: Type -> Type) | Since: base-4.9.0.0 |
Defined in Data.Foldable Methodsfold :: Monoid m => UWord m -> m Source foldMap :: Monoid m => (a -> m) -> UWord a -> m Source foldMap' :: Monoid m => (a -> m) -> UWord a -> m Source foldr :: (a -> b -> b) -> b -> UWord a -> b Source foldr' :: (a -> b -> b) -> b -> UWord a -> b Source foldl :: (b -> a -> b) -> b -> UWord a -> b Source foldl' :: (b -> a -> b) -> b -> UWord a -> b Source foldr1 :: (a -> a -> a) -> UWord a -> a Source foldl1 :: (a -> a -> a) -> UWord a -> a Source toList :: UWord a -> [a] Source null :: UWord a -> Bool Source length :: UWord a -> Int Source elem :: Eq a => a -> UWord a -> Bool Source maximum :: Ord a => UWord a -> a Source minimum :: Ord a => UWord a -> a Source | |
Traversable (UWord :: Type -> Type) | Since: base-4.9.0.0 |
Functor (URec Word :: Type -> Type) | Since: base-4.9.0.0 |
Eq (URec Word p) | Since: base-4.9.0.0 |
Ord (URec Word p) | Since: base-4.9.0.0 |
Defined in GHC.Generics Methodscompare :: URec Word p -> URec Word p -> Ordering Source (<) :: URec Word p -> URec Word p -> Bool Source (<=) :: URec Word p -> URec Word p -> Bool Source (>) :: URec Word p -> URec Word p -> Bool Source (>=) :: URec Word p -> URec Word p -> Bool Source | |
Show (URec Word p) | Since: base-4.9.0.0 |
Generic (URec Word p) | Since: base-4.9.0.0 |
data URec Word (p :: k) |
Used for marking occurrences of Since: base-4.9.0.0 |
type Rep1 (URec Word :: k -> Type) | |
Defined in GHC.Generics | |
type Rep (URec Word p) | |
Defined in GHC.Generics |
8-bit unsigned integer type
Instances
Bounded Word8 | Since: base-2.1 |
Enum Word8 | Since: base-2.1 |
Eq Word8 | Since: base-2.1 |
Integral Word8 | Since: base-2.1 |
Defined in GHC.Word | |
Data Word8 | Since: base-4.0.0.0 |
Defined in Data.Data Methodsgfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Word8 -> c Word8 Source gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Word8 Source toConstr :: Word8 -> Constr Source dataTypeOf :: Word8 -> DataType Source dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Word8) Source dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Word8) Source gmapT :: (forall b. Data b => b -> b) -> Word8 -> Word8 Source gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Word8 -> r Source gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Word8 -> r Source gmapQ :: (forall d. Data d => d -> u) -> Word8 -> [u] Source gmapQi :: Int -> (forall d. Data d => d -> u) -> Word8 -> u Source gmapM :: Monad m => (forall d. Data d => d -> m d) -> Word8 -> m Word8 Source gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Word8 -> m Word8 Source gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Word8 -> m Word8 Source | |
Num Word8 | Since: base-2.1 |
Ord Word8 | Since: base-2.1 |
Read Word8 | Since: base-2.1 |
Real Word8 | Since: base-2.1 |
Defined in GHC.Word MethodstoRational :: Word8 -> Rational Source | |
Show Word8 | Since: base-2.1 |
Ix Word8 | Since: base-2.1 |
Defined in GHC.Word | |
FiniteBits Word8 | Since: base-4.6.0.0 |
Defined in GHC.Word MethodsfiniteBitSize :: Word8 -> Int Source countLeadingZeros :: Word8 -> Int Source countTrailingZeros :: Word8 -> Int Source | |
Bits Word8 | Since: base-2.1 |
Defined in GHC.Word Methods(.&.) :: Word8 -> Word8 -> Word8 Source (.|.) :: Word8 -> Word8 -> Word8 Source xor :: Word8 -> Word8 -> Word8 Source complement :: Word8 -> Word8 Source shift :: Word8 -> Int -> Word8 Source rotate :: Word8 -> Int -> Word8 Source setBit :: Word8 -> Int -> Word8 Source clearBit :: Word8 -> Int -> Word8 Source complementBit :: Word8 -> Int -> Word8 Source testBit :: Word8 -> Int -> Bool Source bitSizeMaybe :: Word8 -> Maybe Int Source bitSize :: Word8 -> Int Source isSigned :: Word8 -> Bool Source shiftL :: Word8 -> Int -> Word8 Source unsafeShiftL :: Word8 -> Int -> Word8 Source shiftR :: Word8 -> Int -> Word8 Source unsafeShiftR :: Word8 -> Int -> Word8 Source rotateL :: Word8 -> Int -> Word8 Source | |
Storable Word8 | Since: base-2.1 |
Defined in Foreign.Storable | |
PrintfArg Word8 | Since: base-2.1 |
Defined in Text.Printf |
16-bit unsigned integer type
Instances
32-bit unsigned integer type
Instances
64-bit unsigned integer type
Instances
byte swapping
byteSwap16 :: Word16 -> Word16 Source
Reverse order of bytes in Word16
.
Since: base-4.7.0.0
byteSwap32 :: Word32 -> Word32 Source
Reverse order of bytes in Word32
.
Since: base-4.7.0.0
byteSwap64 :: Word64 -> Word64 Source
Reverse order of bytes in Word64
.
Since: base-4.7.0.0
bit reversal
bitReverse8 :: Word8 -> Word8 Source
Reverse the order of the bits in a Word8
.
Since: base-4.12.0.0
bitReverse16 :: Word16 -> Word16 Source
Reverse the order of the bits in a Word16
.
Since: base-4.12.0.0
bitReverse32 :: Word32 -> Word32 Source
Reverse the order of the bits in a Word32
.
Since: base-4.12.0.0
bitReverse64 :: Word64 -> Word64 Source
Reverse the order of the bits in a Word64
.
Since: base-4.12.0.0
Notes
- All arithmetic is performed modulo 2^n, where n is the number of bits in the type. One non-obvious consequence of this is that
negate
should not raise an error on negative arguments. - For coercing between any two integer types, use
fromIntegral
, which is specialized for all the common cases so should be fast enough. Coercing word types to and from integer types preserves representation, not sign. - An unbounded size unsigned integer type is available with
Natural
. - The rules that hold for
Enum
instances over a bounded type such asInt
(see the section of the Haskell report dealing with arithmetic sequences) also hold for theEnum
instances over the variousWord
types defined here. - Right and left shifts by amounts greater than or equal to the width of the type result in a zero result. This is contrary to the behaviour in C, which is undefined; a common interpretation is to truncate the shift count to the width of the type, for example
1 << 32 == 1
in some C implementations.
© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.10.2/docs/html/libraries/base-4.14.1.0/Data-Word.html