Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Чет про программирование / 2) Целые числа в памяти

.docx
Скачиваний:
22
Добавлен:
25.04.2015
Размер:
17.85 Кб
Скачать

Целые числа в памяти ПК

Целые числа являются простейшими числовыми данными, с которыми оперирует ЭВМ. Для целых чисел существуют два представления: беззнаковое (только для неотрицательных целых чисел) и со знаком. Очевидно, что отрицательные числа можно представлять только в знаковом виде. Для беззнакового представления все разряды ячейки отводятся под представление самого числа. Например, в байте (8 бит) можно представить беззнаковые числа от 0 до 255. Поэтому, если известно, что числовая величина является неотрицательной, то выгоднее рассматривать её как беззнаковую. Для представления со знаком самый старший (левый) бит отводится под знак числа, остальные разряды - под само число. Если число положительное, то в знаковый разряд помещается 0, если отрицательное, то 1. Например, в байте можно представить знаковые числа от -128 до 127.

Однако для представления отрицательных чисел в памяти компьютера используется так называемый дополнительный код. Дополнительный код числа – это дополнение этого числа до степени 2. Получить дополнительный код можно следующим образом:

  1. Записать двоичное представление числа

  2. Записать обратный код числа, т.е. инвертировать значения разрядов

  3. Прибавить к числу 1.

Почему отрицательные числа представляются в дополнительном коде? Дело в том, что в этом случае операция вычитания двух чисел сводится к сложению с дополнительным кодом вычитаемого, и процессору достаточно уметь лишь складывать числа.

В К-разрядной ячейке может храниться 2^к различных значений целых чисел.

  • Диапазон значений целых беззнаковых чисел: от 0 до 2к - 1 для 16-разрядной ячейки от 0 до 65535 для 8-разрядной ячейки от 0 до 255

  • Диапазон значений целых чисел со знаком: от -2к-1 до 2к-1-1 для 16-разрядной ячейки от -32768 до 32767 для 8-разрядной ячейки от -128 до 127

Целые числа в ЯП Паскаль

  1. Byte: 1 Байт - беззнаковый

  2. ShortInt: 1 Байт - знаковый

  3. Word: 2 Байта - беззнаковый

  4. SmallInt: 2 Байта - знаковый

  5. LongWord: 4 Байта - беззнаковый

  6. LongInt: 4 Байта – знаковый

  7. Qword: 8 Байт - беззнаковый

  8. Int64: 8 Байт - знаковый

Булев тип данных в Паскаль

  1. Boolean – True/False, 0/1

Перечисляемый тип

Перечисляемый тип представляет собой ограниченную упорядоченную последовательность скалярных констант, составляющих данный тип. Значение каждой константы задается ее именем. Имена отдельных констант отделяются друг от друга запятыми, а вся совокупность констант, составляющих данный перечисляемый тип, заключается в круглые скобки.

Программист объединяет в одну группу в соответствии с каким-либо признаком всю совокупность значений, составляющих перечисляемый тип. Например, перечисляемый тип Rainbow (РАДУГА) объединяет скалярные значения RED, ORANGE, YELLOW, GREEN, LIGHT_BLUE, BLUE, VIOLET. Перечисляемый тип Traffic_Light (СВЕТОФОР) объединяет скалярные значения RED, YELLOW, GREEN.

Перечисляемый тип описывается в разделе описания типов, например:

type

Rainbow = (RED, ORANGE, YELLOW,

GREEN, LIGHT_BLUE, BLUE, VIOLET);

Каждое значение является константой своего типа и может принадлежать только одному из перечисляемых типов, заданных в программе. Например, перечисляемый тип Traffic_Light не может быть определен в одной программе с типом Rainbow, так как оба типа содержат одинаковые константы.

Описание переменных, принадлежащих к скалярным типам, которые объявлены в разделе описания типов, производится с помощью имен типов. Например:

type Traffic_Light= (RED, YELLOW, GREEN);

var Section: Traffic_Light;

Это означает, что переменная Section может принимать значения RED, YELLOW или GREEN.

Переменные перечисляемого типа могут быть описаны в разделе описания переменных, например:

var Section: (RED, YELLOW, GREEN);

При этом имена типов отсутствуют, а переменные определяются совокупностью значений, составляющих данный перечисляемый тип.

К переменным перечисляемого типа может быть применим оператор присваивания:

Section:= YELLOW;

Упорядоченная последовательность значений, составляющих перечисляемый тип, автоматически нумеруется, начиная с нуля и далее через единицу. Отсюда следует, что к перечисляемым переменным и константам могут быть применены операции отношения и стандартные функции Pred, Succ, Ord