Главная » Haskell » Модуль Int

0

В модуле Int определены типы для представления ограниченных целых чисел. В отличие от примитивного типа Int,  в этом модуле  описываются целочисленные  типы, занимающие различное  количество  байт в памяти, а потому использующиеся в различных целях. Использование:

import  Data.Int

Первый тип данных, который описан в этом модуле,  — Int — переопределяет примитивный тип.

Тип: Int

Описание: тип для представления  целых чисел фиксированной  точности. Все значения этого типа лежат в интервале [?229, 229 ? 1]. Точные значения нижней

и верхней границы для конкретной реализации (в зависимости от транслятора языка) можно узнать при помощи методов minBound и maxBound класса Bounded (см. стр. 115).

Определение:

Тип определён в виде примитива.

Для данного типа определены экземпляры следующих классов: Bits, Bounded, Data, Enum,  Eq, Integral,  Ix,  NFData, NFDataIntegral,  NFDataOrd,  Num,  Ord, PrintfArg, Random, Read, Real, Show, Storable, Typeable, IArray, и MArray. Тип: Int8

Описание: тип для представления целых чисел со знаком, занимающих в памяти

8 бит (интервал [?27, 27 ? 1]).

Определение:

Тип определён в виде примитива.

Тип: Int16

Описание: тип для представления целых чисел со знаком, занимающих в памяти

16 бит (интервал [?215, 215 ? 1]).

Определение:

Тип определён в виде примитива.

Тип: Int32

Описание: тип для представления целых чисел со знаком, занимающих в памяти

32 бита (интервал [?231, 231 ? 1]).

Определение:

Тип определён в виде примитива.

Тип: Int64

Описание: тип для представления целых чисел со знаком, занимающих в памяти

64 бита (интервал [?263, 263 ? 1]).

Определение:

Тип определён в виде примитива.

Для типов Int8,  Int16, Int32 и Int64 определены экземпляры  следующих классов: Bits, Bounded, Data, Enum, Eq, Integral, Ix, Num, Ord, Read, Real, Show, Storable, Typeable, IArray и MArray.

Необходимо  отметить, что  для перечисленных  типов все  арифметические операции выполняются по модулю 2n, где n —  количество  бит, используемых для представления числа. Преобразование из одного целочисленного типа в другой можно производить при помощи функции fromIntegral, которая для всех перечисленных типов работает достаточно быстро. Также правила класса Enum (см. стр. 115) для типа Int работают и с  определёнными  в этом модуле целочисленными типами. Наконец, правый и левый сдвиги (см. раздел 8.2.) на число битов, равное или большее количеству битов, используемому для представления

типа, возвращает значение 0 или ?1 в зависимости от знака числа, над которым

производится сдвиг.

Источник: Душкин Р. В., Справочник по языку Haskell. М.: ДМК Пресс, 2008. 544 с., ил.

По теме:

  • Комментарии