Основные темы параграфа:
- представление целых чисел;
- размер ячейки и диапазон значений чисел;
- особенности работы компьютера с целыми числами;
- представление вещественных чисел;
- особенности работы компьютера с вещественными числами.
Представление целых чисел
Размер ячейки и диапазон значений чисел
Представление вещественных чисел
Любая информация в памяти компьютера представляется в двоичном виде: последовательностью нулей и единиц. Исторически первым типом данных, с которыми стали работать компьютеры, были числа. Теперь это и числа, и тексты, и изображение, и звук. Работа с данными любого типа в конечном итоге сводится к обработке двоичных чисел — чисел, записываемых с помощью двух цифр, — 0 и 1.
Поэтому современные компьютерные технологии называют цифровыми технологиями.
В компьютере различаются два типа числовых величин: целые числа и вещественные числа. Различаются способы их представления в памяти компьютера.
Часть памяти, в которой хранится одно число, будем называть ячейкой. Минимальный размер ячейки, в которой может храниться целое число, — 8 битов, или 1 байт. Получим представление десятичного числа 25 в такой ячейке. Для этого нужно перевести число в двоичную систему счисления. Как это делается, вы уже знаете.
Результат перевода:
2510 = 110012.
Теперь осталось «вписать» его в восьмиразрядную ячейку (записать так называемое внутреннее представление числа). Делается это так:
00011001.
Число записывается «прижатым» к правому краю ячейки (в младших разрядах). Оставшиеся слева разряды (старшие) заполняются нулями.
Самый старший разряд — первый слева — хранит знак числа. Если число положительное, то в этом разряде ноль, если отрицательное — единица. Самому большому положительному целому числу соответствует следующий код:
01111111
Чему он равен в десятичной системе? Можно расписать это число в развернутой форме и вычислить выражение. Но можно решить задачу быстрее. Если к младшему разряду этого числа прибавить единицу, то получится число 10000000. В десятичной системе оно равно 27 = 128. Значит:
011111112 = 128 - 1 = 127.
Максимальное целое положительное число, помещающееся в 8-разрядную ячейку, равно 127.
Теперь рассмотрим представление целых отрицательных чисел. Как, например, в 8-разрядной ячейке памяти будет представлено число -25?
Казалось бы, очевидным ответом является следующий: нужно в представлении числа 25 заменить старший разряд с 0 на 1. Но в компьютере все несколько сложнее.
Для представления отрицательных целых чисел используется дополнительный код.
Получить дополнительный код некоторого отрицательного числа -X можно по следующему алгоритму:
1) записать внутреннее представление соответствующего ему положительного числа +Х — это мы уже умеем;
2) записать обратный код полученного числа заменой во всех разрядах 0 на 1 и 1 на 0;
3) к полученному числу прибавить 1.
Определим по этим правилам внутреннее представление числа -2510 в восьмиразрядной ячейке:
1) 00011001
2) 11100110
3) +1
11100111 — это и есть представление числа -25.
В результате выполнении такого алгоритма единица в старшем разряде получается автоматически. Она и является признаком отрицательного значения.
Проверим полученный результат. Очевидно, что при сложении чисел +25 и -25 должен получиться ноль.
0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | |
+ | ||||||||
1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | |
1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Единица в старшем разряде, получаемая при сложении, выходит за границу ячейки и исчезает. В ячейке остается нолъ.
Из этого примера теперь можно понять, почему представление отрицательного числа называется дополнительным кодом.
Представление восьмиразрядного отрицательного числа -X дополняет представление соответствующего положительного числа +Х до значения 2 8.
Следующая страница Размер ячейки и диапазон значений чисел