аптионш. Материалы для изучения темы 1.1. Лекции по теме 1 Понятие информации, кодирование, декодировании. Измерение информации. Системы счисления
Скачать 114.83 Kb.
|
Представление целых чиселЦелые числа представляются в памяти компьютера в двоичном виде. Значения двоичных разрядов целого неотрицательного числа хранятся в двоичных разрядах ячеек памяти, отведенных под число. Пример. Пусть ячейка для хранения числа состоит из 16-ти разрядов (2 байта памяти). Тогда число 150010 = 1024+256+128+64+16+8+4 = 210+28+27+26+24+23+22 =101110111002 будет храниться в памяти в следующем виде:
Снизу указаны номера разрядов, обратите внимание, что нумерация начинается с нуля. В числе было 11 разрядов, а в ячейке – 16. “Лишние” 5 разрядов слева заполняются нулями. Такой способ представления неотрицательных целых чисел называется прямым кодом. Прямой код позволяет представлять числа в диапазоне от 0 до 2N-1, где N — количество разрядов памяти, отведенных для хранения числа. Действительно, максимальное число, которое можно представить в N-разрядном прямом коде, состоит из N единиц (в двоичной записи). 111…1112 = 1000…0002 – 1 = 2N–1 N единиц N нулей Во многих вычислениях используются только неотрицательные целые числа (так называемые “числа без знака”), однако для решения огромного количества задач требуется универсальный формат компьютерной записи чисел, позволяющий хранить “целые числа со знаком”, то есть, как положительные, так и отрицательные числа. Один из способов представления “целых чисел со знаком” состоит в выделении отдельного двоичного разряда (обычно крайнего левого) для хранения знака числа, закодировав, например, минус единицей, а плюс – нулем. При этом остальные отведенные для числа разряды будут использоваться для хранения абсолютной величины этого числа. Такой способ компьютерного представления чисел называется способом представления величиной и знаком. Именно так обычно записываются десятичные числа на бумаге. Пример. Число 9, представленное величиной и знаком в восьмиразрядном формате (левый разряд – знаковый):
910 = 8+1= 23+20=10012 Число –9, представленное величиной и знаком в восьмиразрядном формате (левый 7 разряд – знаковый):
—9 = — (8+1)= — (23+20) = — 10012 Более эффективен с вычислительной точки зрения другой способ хранения “целых чисел со знаком”. Он отличается от предыдущего тем, что отрицательные числа хранятся в так называемом обратном коде. Его получают, выполняя поразрядную инверсию абсолютной величины двоичного числа. Поразрядная инверсия – это операция замены содержимого каждого разряда на противоположное по значению (все единицы становятся нулями, а все нули - единицами). При этом значение левого (знакового) разряда равно 0 для положительных чисел и 1 для отрицательных. Пример. Пусть для хранения двоичного числа выделено 8 двоичных разрядов (1 байт), тогда для хранения абсолютной величины числа остается 7 двоичных разрядов. В таком случае числа 9 и -9 будут представлены в следующем виде:
Такой способ представления чисел имеет недостаток: две формы представления нуля. В компьютере, использующем такой способ представления чисел, потребовались бы дополнительные логические схемы для работы с обеими разновидностями нуля. Во избежание этого практически во всех современных компьютерах отрицательные числа представлены несколько иначе, а именно в дополнительном коде. Этот код получается, если к содержимому младшего разряда обратного кода прибавить 1. Пример. Число -9 в дополнительном коде имеет следующий вид:
Чтобы определить абсолютную величину числа, записанного в дополнительном коде, следует выполнить его поразрядную инверсию и затем прибавить 1. Пример. Абсолютное значение отрицательного числа —9 получается следующим образом:
Таким же способом может быть получено абсолютное значение для любого отрицательного числа, записанного в дополнительном коде. Преобразование чисел из такого компьютерного представления в обычную десятичную форму записи следует начинать с анализа значения левого (знакового) разряда. Если это значение равно нулю, то число – положительное, и его можно непосредственно переводить в десятичную форму из прямого двоичного кода. Если же это значение равно 1, то число - отрицательное, поэтому к нему следует сначала применить поразрядную инверсию, затем прибавить 1 и затем результат преобразовать в десятичную форму, снабдив его знаком "минус". Пример:
При таком способе представления чисел вычитание эквивалентно сложению уменьшаемого с вычитаемым, предварительно записанном как отрицательное число в дополнительном коде. В компьютере перевод числа в дополнительный код выполняется очень быстро. Поэтому это действие с последующим сложением используют вместо выполнения вычитания. Пример. Рассмотрим вычитание 910 из 2410 при записи этих чисел в восьмиразрядном двоичном коде:
Вычитаемое, представленное как отрицательное число в дополнительном коде, имеет вид 111101112. Поэтому операция может быть записана в виде:
Поскольку используется представление чисел восемью двоичными цифрами, цифра крайнего слева разряда результата должна быть отброшена. Таким образом, правильным ответом является 000011112 = 1·20+ 1·21+1·22+1·23 = 1+2+4+8 =1510. C помощью дополнительного кода в N разрядах памяти можно представить целые числа в диапазоне от –2N–1 до 2N–1 –1 включительно. В 8 разрядах памяти можно представить целые числа в диапазоне от –27 до 27 –1 включительно, т.е. от -128 до 127. |