среда, 18 декабря 2013 г.

Представление чисел в памяти компьютера

Любая информация в памяти компьютера представляется в двоичном виде: последовательностью нулей и единиц. Исторически первым типом данных, с которыми стали работать компьютеры были числа. Теперь это и числа, и тексты, и изображение, и звук. Работа с данными любого типа в конечном счете сводится к обработке двоичных чисел — чисел, записываемых с помощью двух цифр — 0 и 1.
В компьютере различаются два типа числовых величин: целые числа и вещественные числа. Различаются способы их представления в памяти компьютера.

1. Представление целых чисел


Часть памяти, в которой хранится одно число, называется ячейкой. Минимальная ячейка, в которой может храниться целое число, имеет размер 8 битов — 1 байт. Получим представление десятичного числа 25 в такой ячейке. Для этого нужно перевести число в двоичную систему счисления. Результат перевода:
2510 = 110012.

Теперь осталось «вписать» его в восьмиразрядную ячейку (записать так называемое внутреннее представление числа). 

Число записывается «прижатым» к правому краю ячейки (в младших разрядах). Оставшиеся слева разряды (старшие) заполняются нулями.
Самый старший разряд — первый слева, хранит знак числа. Если число положительное, то в этом разряде ноль, если отрицательное — единица. 

Теперь рассмотрим представление целых отрицательных чисел. На примере числа -25

2. Представление отрицательных чисел

1) записать внутреннее представление положительного числа X;
2) записать обратный код этого числа заменой во всех разрядах 0 на 1 и 1 на 0;
3) к полученному числу прибавить 1.

Определим по этим правилам внутреннее представление числа -25 в 8-разрядной ячейке:
1) 00011001
2) 11100110
3)             +1
    11100111 — это и есть представление числа -25.


В результате выполнения такого алгоритма единица в старшем разряде получается автоматически. Она и является признаком отрицательного значения.

Повторим эту операцию для чисел -45  и  -111
-45 = 11010011
1) 45 = 00101101 (внутреннее представление положительного числа)
2) 11010010 (обратный код)
3) 11010011 (прибавляем единицу)

-111 = 10010001
1) 111 = 01101111 (внутреннее представление положительного числа)
2) 10010000 (обратный код)
3) 10010001 (прибавляем единицу)

Комментариев нет:

Отправить комментарий