Тема 1.4. Организация данных в компьютере ↕ ↑
1.4.1. Представление целых чисел
1.4.2. Представление вещественных чисел
1.4.3. Кодирование текстовой информации
1.4.4. Контрольные вопросы по теме «Организация данных в компьютере»
1.4.5. Тестовые задания по теме «Организация данных в компьютере»
Числа в компьютерах в двоичных кодах представляются как с фиксированной (в естественной форме), так и с плавающей точкой (в экспоненциальной форме).
При представлении в памяти компьютера чисел в естественной форме устанавливается фиксированная длина разрядной сетки. Причем точку можно зафиксировать в начале, середине или в конце разрядной сетки. При этом распределение разрядов между целой и дробной частями остается неизменным для любых чисел. В современных компьютерах эта форма используется для представления целых чисел.
Достоинствами естественной формы являются простота и наглядность представления чисел, простота алгоритмов реализации операций, а, следовательно, простота устройств и высокая скорость выполнения операций. Недостатком – конечный диапазон представления величин, что приводит к переполнению разрядной сетки при выходе за допустимые границы и искажению результата. Неудобство представления чисел в форме с фиксированной точкой проявляется при решении задач, в которых фигурируют как очень малые, так и очень большие числа.
1.4.1. Представление целых чисел
Целые числа могут представляться в компьютере со знаком или без знака.
Целые числа без знака обычно занимают в памяти компьютера один или два байта. В однобайтовом формате принимают значения от 000000002 до 111111112. В двухбайтовом формате - от 00000000000000002 до 11111111111111112.
Диапазоны значений целых чисел приведены в табл. 1.4.1.
Пример 1.4.1-1. Представить число7210 = 10010002в однобайтовом формате:
Пример 1.4.1-2. Представить это же число в двухбайтовом формате:
Пример 1.4.1-3. Представить число 6553510 в двухбайтовом формате:
Целые числа со знаком обычно занимают в памяти компьютера один, два или четыре байта, при этом самый левый (старший) разряд содержит информацию о знаке числа.
Таблица 1.4.1-1.
Диапазоны значений целых чисел со знаком приведены в таблице 1.4.1-2.
Таблица 1.4.1-2
Рассмотрим особенности записи целых чисел со знаком на примере однобайтового формата, при котором для знака отводится один разряд, а для цифр абсолютной величины – семь разрядов.
В компьютерной технике применяются три формы записи (кодирования) целых чисел со знаком: прямой код, обратный код, дополнительный код.
Последние две формы применяются особенно широко, так как позволяют упростить конструкцию арифметико-логического устройства компьютера путем замены разнообразных арифметических операций операцией сложения.
Положительные числа в прямом, обратном и дополнительном кодах изображаются одинаково - двоичными кодами с цифрой 0 в знаковом разряде.
Пример 1.4.1-4. Представить положительное число 110=12 в прямом коде:
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
+Знак числа
Пример 1.4.1-5. Представить положительное число 12710=11111112 в прямом коде:
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
+Знак числа
Отрицательные числа в прямом, обратном и дополнительном кодах имеют разное изображение.
Прямой код. В знаковый разряд помещается цифра 1, а в разряды цифровой части числа – двоичный код его абсолютной величины.
Пример 1.4.1-6. Представить отрицательное число – 110 в прямом коде:
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
+Знак числа
Пример 1.4.1-7. Представить отрицательное число – 12710 в прямом коде:
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
+Знак числа
Обратный код. Получается инвертированием всех цифр двоичного кода абсолютной величины числа, включая разряд знака: нули заменяются единицами, а единицы – нулями.
Пример 1.4.1-8. Представить отрицательное число – 110 в обратном коде:
Код модуля числа |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Обратный код числа |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
Пример 1.4.1-9. Представить отрицательное число – 12710 в обратном коде:
Код модуля числа |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Обратный код числа |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Дополнительный код. Получается образованием обратного кода с последующим прибавлением единицы к его младшему разряду.
Пример 1.4.1-10. Представить отрицательное число – 110 в дополнительном коде:
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Пример 1.4.1-11. Представить отрицательное число – 12710 в дополнительном коде:
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Обычно отрицательные десятичные числа при вводе в машину автоматически преобразуются в обратный или дополнительный двоичный код и в таком виде хранятся, перемещаются и участвуют в операциях. При выводе таких чисел из машины происходит обратное преобразование в отрицательные десятичные числа.