Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика учебное пособие часть 1.doc
Скачиваний:
31
Добавлен:
16.09.2019
Размер:
882.18 Кб
Скачать

5.5.1 Кодирование в компьютере целых чисел без знака

Для записи числа в устройствах компьютера выделяется фиксированное количество двоичных разрядов. Размер одной адресуемой ячейки обычно составляет несколько байтов, например, 2 – такая комбинация связанных соседних ячеек, обрабатываемая совместно, называется машинным словом.

Конечный размер разрядной сетки порождает понятие «наибольшее целое число», которого в обычном представлении чисел просто не существует.

Если количество разрядов k и p=2 , то Zmax = 2k–1.

Н апример, если k = 16, p = 2, то Zmax = 216 – 1 = 11 … 1 = 65535(10).

Другими словами, целого числа, большего 65535(10), в компьютере просто не может существовать, и появление чисел, превышающих Zmax, должно интерпретироваться как ошибка.

М инимальным числом в беззнаковом представлении является Zmin = 0 … 0 = 0 .

16

Например, в языке Pascal тип целых чисел без знака, для записи которых отводится 2 байта, определен как Word, 1 байт – Byte. Тип устанавливает способ кодирования числа, количество отводимых разрядов для записи, а также перечень допустимых операций при обработке.

Выход за границу 65535(10) возможен только путем увеличения количества разрядов для записи числа, но это уже будет другой тип со своим Zmax.

(Например, тип LongInt, 4 байта – Zmax = 2147483647(10)).

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

Сложение производится согласно таблице сложения (таблица 5.2).

Место, где сохраняется переносимая в старший разряд 1 до того, как она будет использована в операции, называется битом переноса.

Таблица 5.2 Сложение двоичных чисел.

Перенос в следующий разряд Pi+1

Результат Si

Слагаемые

Перенос из младшего разряда Pi-1

0

0

0 0

0

0

1

0 0

1

0

1

1 0

0

1

0

1 0

1

1

0

1 1

0

1

1

1 1

1

Пример 7. Найти сумму 1494(10) + 1392(10) при беззнаковой двоичной кодировке и 16-битном машинном слове для представления чисел.

Переведем исходные числа в соответствующие 16-битные двоичные представления (разбиение на тетрады – условное, для удобочитаемости).

1494(10) = 0000 0101 1101 0110(2);

1392(10) = 0000 0101 0111 0000(2).

Выполним сложение по правилам таблицы 5.2.

0000 0101 1101 0110

0000 0101 0111 0000

0000 1011 0100 0110

Проверим получившийся результат

211 + 29 + 28 + 26 + 22 + 21 =2048 + 512 + 256 + 64 + 4 + 2 = 2886(10) .

Пример 8. Найти сумму коротких целых чисел (byte), для представления которых отводится 1 байт: 159(10) + 100(10)

159(10) = 1001 1111(2) 100(10) = 0110 0100(2)

Выполним сложение по правилам таблицы 5.2.

1001 1111

0110 0100

1 0000 0011 Перенос из старшего разряда называется битом переполнения. Ответ: 0000 0011(2) = 3(10) .