Copyright | (c) The University of Glasgow 2001 |
---|---|

License | BSD-style (see the file libraries/base/LICENSE) |

Maintainer | libraries@haskell.org |

Stability | experimental |

Portability | portable |

Safe Haskell | Safe |

Language | Haskell2010 |

Unsigned integer types.

A `Word`

is an unsigned integral type, with the same size as `Int`

.

8-bit unsigned integer type

16-bit unsigned integer type

32-bit unsigned integer type

64-bit unsigned integer type

byteSwap16 :: Word16 -> Word16 Source

Swap bytes in `Word16`

.

Since: 4.7.0.0

byteSwap32 :: Word32 -> Word32 Source

Reverse order of bytes in `Word32`

.

Since: 4.7.0.0

byteSwap64 :: Word64 -> Word64 Source

Reverse order of bytes in `Word64`

.

Since: 4.7.0.0

- 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 as`Int`

(see the section of the Haskell report dealing with arithmetic sequences) also hold for the`Enum`

instances over the various`Word`

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/7.10.3/docs/html/libraries/base-4.8.2.0/Data-Word.html