Числовая система ЭВМ. Представление целых чисел без знака и со знаком

Введем основные понятия на примере 4-битовых машинных слов. Такой размер слова обеспечивает хранение десятичных чисел только от 0 до 15 и поэтому не представляет практического значения. Однако они менее громоздки, а основные закономерности, обна­руженные на примере 4-битовых слов, сохраняют силу для машин­ного слова любого размера.

Предположим, что процессор ЭВМ способен увеличивать (прибавлять 1) и дополнять (инвертировать) 4-битовые слова. Например, результатом увеличения слова 1100 является 1101, а ре­зультатом дополнения этого слова является ООН. Рассмотрим слово 0000, представляющее десятичное число 0. В результате увеличения содержимое этого слова станет равным 0001, что соответствует десятичному числу 1. Продолжая последовательно увеличивать 4-битовые слова, придем к ситуации, когда, увеличивая слово 1111 (которое представляет десятичное число 15), получим в результате слово 0000, т. е. 111+1 = 0000 (15+1=0), при этом получили неверную арифметическую операцию и вернулись в исходное состояние. произошло из-за того, что слово памяти может состоять только конечного числа битов. Таким образом, числовая система ЭВМ является конечной и цикличной.

Такой ситуации, приводящей к неверному арифметическому результату, можно избежать, если битовую конфигурацию 1111 принять за код для -1. Тогда 1110 интерпретируется как -2; 1101-3 и т.д. до 1000-8. Тем самым получили другую числовую систему — со знаком, содержащую как положительные, так и отрицательные числа. В этой системе половина четырехбитовых конфигураций, начинающаяся с единицы, интерпретируется как отрицательные числа, а другая половина, начинающаяся с 0, — как положительные числа или нуль. Поэтому старший бит числа (третий по счету, если нумерацию битов начинать с нуля справа налево) называется знаковым битом. Числовая система со знаком также конечна и циклична, однако в этом случае арифметически неверный результат даст попытка увеличить число 8 на единицу. Преимущество введения числовой системы со знаком заключается в возможности представления как положительных, так и отрицательных чисел.

Если знаковый бит равен нулю, то значение числа легко вычисляется — игнорируется знаковый бит, а оставшиеся три бита интерпретируются как двоичный код десятичного числа. Например, слово 0110 представляет двоичное число 110, которое равно десятич­ному числу 6.

Для оценки отрицательного числа нужно изменить его знак. Рассмотрим четырехбитовое число в системе со знаком. Тогда — k-= (-1 — k)+ 1, следовательно, для вычисления значения — необхо­димо вычесть из -1 (т.е. из 1111) и затем прибавить 1 (т.е. 0001). Заметим, что операция вычитания всегда возможна, никогда не требует заема и равнозначна операции инвертирования битов вычитаемого. Например, 1111 — 1011 = 0100, здесь в вычитаемом, равном 1011, единицы перешли в нули, а нуль — в единицу. Инвертирование битов в слове называется дополнением до единицы. Для определения отрицательного значения числа надо к его до­полнению до единицы прибавить единицу (согласно вышепри­веденному равенству). Инвертирование битов в слове с добавлением единицы к младшему биту называется дополнением до двух. Нап­ример, требуется найти, какое число закодировано в слове 1001. Для этого сначала выполняем операцию инвертирования 1001 -> ОНО, а затем к полученному результату прибавляем единицу 0110+ 1 =0111, что является двоичным кодом числа 7. Таким образом, значением 1001 является отрицательное 7, т.е. -7.

Добавить комментарий