Мегаобучалка Главная | О нас | Обратная связь


Арифметических операций в прямом обратном и дополнительном коде



2015-12-07 5985 Обсуждений (0)
Арифметических операций в прямом обратном и дополнительном коде 0.00 из 5.00 0 оценок




(Тут немного теории чтоб на уши подсесть ему, а все операции на семинарах были).

Представление положительных и отрицательных чисел в памяти компьютера. Прямой и дополнительный код числа

Прямой код

Прямой код – это представление числа в двоичной системе счисления, при котором первый (старший) разряд отводится под знак числа. Если число положительное, то в левый разряд записывается 0; если число отрицательное, то в левый разряд записывается 1.

Таким образом, в двоичной системе счисления, используя прямой код, в восьмиразрядной ячейке (байте) можно записать семиразрядное число. Например:

0 00011010 - положительное число

1 00011010 – отрицательное число

Количество значений, которые можно поместить в семиразрядной ячейке со знаком в дополнительном разряде равно 256. Это совпадает с количеством значений, которые можно поместить в восьмиразрядную ячейку без указания знака. Однако диапазон значений уже другой, ему принадлежат значения от -128 до 127 включительно (при переводе в десятичную систему счисления).

При этом в вычислительной технике прямой код используется почти исключительно для представления положительных чисел.

Для отрицательных чисел используется так называемый дополнительный код. Это связано с удобством выполнения операций над числами электронными устройствами компьютера.

Дополнительный код

В дополнительном коде, также как и прямом, первый разряд отводится для представления знака числа. Прямой код используется для представления положительных чисел, а дополнительный – для представления отрицательных. Поэтому, если в первом разряде находится 1, то мы имеем дело с дополнительным кодом и с отрицательным числом.

Все остальные разряды числа в дополнительном коде сначала инвертируются, т.е. заменяются противоположными (0 на 1, а 1 на 0). Например, если 1 0001100 – это прямой код числа, то при формировании его дополнительного кода, сначала надо заменить нули на единицы, а единицы на нули, кроме первого разряда. Получаем 1 1110011. Но это еще не окончательный вид дополнительного кода числа.

Далее следует прибавить единицу к получившемуся инверсией числу:

1 1110011 + 1 = 1 1110100

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

Причина, по которой используется дополнительный код числа для представления отрицательных чисел, связана с тем, что так проще выполнять математические операции. Например, у нас два числа, представленных в прямом коде. Одно число положительное, другое – отрицательное и эти числа нужно сложить. Однако просто сложить их нельзя. Сначала компьютер должен определить, что это за числа. Выяснив, что одно число отрицательное, ему следует заменить операцию сложения операцией вычитания. Потом, машина должна определить, какое число больше по модулю, чтобы выяснить знак результата и определиться с тем, что из чего вычитать. В итоге, получается сложный алгоритм. Куда проще складывать числа, если отрицательные преобразованы в дополнительный код. Это можно увидеть на примерах ниже.

Операция сложения положительного числа и отрицательного числа, представленного в прямом коде

Прямой код числа 5: 0 000 0101

Прямой код числа -7: 1 000 0111

Два исходных числа сравниваются. В разряд знака результата записывается знак большего исходного числа.

Если числа имеют разные знаки, то вместо операции сложения используется операция вычитания из большего по модулю значения меньшего. При этом первый (знаковый) разряд в операции не участвует.

_ 000 0111

000 0101

-------------

000 0010

После выполнения операции учитывается первый разряд. Результат операции 1 000 0010, или -210.

Операция сложения положительного числа и отрицательного числа, представленного в дополнительном коде

Прямой код числа 5: 0 000 0101

Прямой код числа -7: 1 000 0111

Формирование дополнительного кода числа -7.

Прямой код : 1 000 0111

Инверсия : 1 111 1000

Добавление единицы: 1 111 1001

Операция сложения.

0 000 0101

+ 1 111 1001

--------------

1 111 1110

Проверка результата путем преобразования к прямому коду.

Дополнительный код: 1 111 1110

Вычитание единицы : 1 111 1101

Инверсия : 1 000 0010 (или -210)

Арифметические операции в двоичной системе счисления

В двоичной системе счисления арифметические операции выполняются по тем же правилам, что и в десятичной системе счисления, т.к. они обе являются позиционными (наряду с восьмеричной, шестнадцатеричной и др.).

Сложение

Сложение одноразрядных двоичных чисел выполняется по следующим правилам:

0 + 0 = 0

1 + 0 = 1

0 + 1 = 1

1 + 1 = 10

В последнем случае, при сложении двух единиц, происходит переполнение младшего разряда, и единица переносится в старший разряд. Переполнение возникает в случае, если сумма равна основанию системы счисления (в данном случае это число 2) или больше его (для двоичной системы счисления это не актуально).

Сложим для примера два любых двоичных числа:

+ 101

------

Вычитание

Вычитание одноразрядных двоичных чисел выполняется по следующим правилам:

0 - 0 = 0

1 - 0 = 1

0 - 1 = (заем из старшего разряда) 1

1 - 1 = 0

Пример:

- 101

----

Умножение

Умножение одноразрядных двоичных чисел выполняется по следующим правилам:

0 * 0 = 0

1 * 0 = 0

0 * 1 = 0

1 * 1 = 1

Пример:

* 10

------

+ 0000

------

Деление

Деление выполняется так же как в десятичной системе счисления:

1110 | 10

|----

10 | 111

----

----

----

Алгебра логики: Основные понятия, Функции алгебры логики (ФАЛ)

Булевой (логической) переменной называют переменную, принимающую значение из множества {0,1}. Название «логическая» следует из того, что её значения трактуются чаще всего как «истина» (для 1) и «ложь» (для 0).

Функцией алгебры логики (переключательной или булевой функцией) от n переменных называют однозначное отображение множества всевозможных наборов значений n булевых переменных в множество {0,1}.

Такую функцию можно представить в виде таблицы из n+1столбцов и 2n строк. Эта таблица называется таблицей истинности.

Наборы значений переменных располагают в лексикографическом порядке (в порядке возрастания),как в примере в табл. 5.1 для n = 3.

Число всевозможных наборов значений переменных составляет N=2n. Число различных функций, которые могут быть записаны в таблице, равно 2N.

Таблица 5.1
x1 x2 x3 f

Второй способ описания функции состоит в том. что перечисляются наборы значений, на которых функция равна 1 (множество Т1), или равна 0 (множество Т0).

Для приведённого примера функцию можно представить как Т1={001,010,100, 111}.

Третий способ описания – представление функций в виде вектора. Так как порядок перечисления наборов входных переменных установлен, то достаточно указать только столбец функции. Для приведенного примера это будет вектор <01101001> .

Определение. Булева функция существенно зависит от переменной хi, если найдутся два набора значений переменных, отличающиеся только i-й компонентой, на которых значения функции не совпадают. Переменная, от которой функция существенно не зависит, называется несущественной или мнимой для данной функции.

Пример. Пусть функция на наборах значений переменных <00110> и <01110> равна, соответственно, 1 и 0. Эта функция существенно зависит от второй переменной, потому что её значение на этих наборах определяется только значением этой переменной.

Будем считать, что функция не изменится, если в нее добавить или из нее убрать любое количество несущественных переменных.

Таблица 5.2
x x `x

Среди четырех функций одной переменной, приведенных в табл.5.2, две функции, первая и последняя, являются константами (не зависящими ни от одной переменной). Их обозначают соответственно как 0 и 1. Вторая функция повторяет переменную. Третья противоположна ей, называется инверсией и обозначается `x.

Пусть [n] – число функций, существенно зависимых от n переменных. Тогда [1] = 2, [0] = 2. Для любого n это число можно подсчитать по рекуррентной формуле

[n] = 2N- [0] - Cn1[1] - Cn2[2] - .... Cnn-1[n-1].

Здесь N=2n, первая компонента – число функций от n переменных, из которого последовательно для i=0,1,..., n-1 вычитаются произведения числа функций, существенно зависимых от i переменных, на число способов, которыми можно выбрать i переменных из n.

Так, для n = 2 [2]=16-2-2×2=10. Для n=3 [3]=256-2-3×2-3×10=218.



2015-12-07 5985 Обсуждений (0)
Арифметических операций в прямом обратном и дополнительном коде 0.00 из 5.00 0 оценок









Обсуждение в статье: Арифметических операций в прямом обратном и дополнительном коде

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему люди поддаются рекламе?: Только не надо искать ответы в качестве или количестве рекламы...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (5985)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)