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

В таблице 3 представлены операции сложения, вычитания и умножения в двоичной системе счисления.

Таблица 3

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

Сложение Вычитание Умножение
0+0=0 0-0=0 0*0=0
1+0=1 1-0=1 1*0=0
0+1=1 0-1=1 0*1=0
1+1=10 1-1=0 1*1=1

Примечание: При сложении двух чисел, равных 1, в данном разряде получается 0, а 1-ца переносится в старший разряд.

Пример_21: Даны числа 101(2) и 11(2). Найти сумму этих чисел.

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

где 101(2)= 5(10), 11(2)= 3(10), 1000(2) = 8(10).

Проверка: 5+3=8.

При вычитании из 0 единицы, занимается единица из старшего ближайшего разряда, отличного от 0. При этом, единица занятая в старшем разряде, даёт 2 единицы в младшем разряде и по единице во всех разрядах между старшим и младшим.

Пример_22: Даны числа 101(2) и 11(2). Найти разность этих чисел.

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

где 101(2)=5(10), 11(2)=3(10), 10(2)=2(10).

Проверка: 5-3=2.

Операция умножения сводится к многократному сдвигу и сложению.

Пример_23: Даны числа 11(2) и 10(2). Найти произведение этих чисел.

* 10

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

110,

где 11(2)=3(10), 10(2)=2(10), 110(2)=6(10).

Проверка: 3*2=6.

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

При сложении двух чисел, в сумме равных 8, в данном разряде получается 0, а 1-ца переносится в старший разряд.

Пример_24: Даны числа 165(8) и 13(8). Найти сумму этих чисел.

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

где 165(8)= 117(10), 13(8)= 11(10), 200(8) = 128(10).

При вычитании из меньшего числа большего, занимается единица из старшего ближайшего разряда, отличного от 0. При этом, единица занятая в старшем разряде, даёт 8 в младшем разряде.

Пример_25: Даны числа 114(8) и 15(8). Найти разность этих чисел.

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

где 114(8)=76(10), 15(8)=13(10), 77(8)=63(10).

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

При сложении двух чисел, в сумме равных 16, в данном разряде записывают 0, а 1-ца переносят в старший разряд.

Пример_26: Даны числа 1B5(16) и 53(16). Найти сумму этих чисел.

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

где 1B5(16)= 437(10), 53(16)= 83(10), 208(16) = 520(10).

При вычитании из меньшего числа большего, занимается единица из старшего ближайшего разряда, отличного от 0. При этом, единица занятая в старшем разряде, даёт 16 в младшем разряде.

Пример_27: Даны числа 11A(16) и 2C(16). Найти разность этих чисел.

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

где 11A(16)=282(10), 2C(16)=44(10), EE(16)=238(10).

Кодирование данных в ЭВМ

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

Код – набор условных обозначений для представления информации. Кодирование – процесс представления информации в виде кода.

Коды чисел

При выполнении арифметических операций в ЭВМ применяют прямой, обратный и дополнительный коды чисел.

Прямой код

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

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

Целые числа без знака обычно занимают в памяти один или два байта. Для хранения целых чисел со знаком отводится один, два или четыре байта, при этом старший (крайний левый) разряд отводится под знак числа. Если число положительное, то в этот разряд записывается 0, если отрицательное,- то 1.

Пример_28:

1(10)=0000 0001(2), -1(10)=1000 0001(2)

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

Положительные числа в ЭВМ всегда представляются с помощью прямого кода. Прямой код числа полностью совпадает с записью самого числа в ячейке машины. Прямой код отрицательного числа отличается от прямого кода соответствующего положительного числа лишь содержимым знакового разряда.

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

Обратный код

Обратный код положительного числа совпадает с прямым, а при записи отрицательного числа все его цифры, кроме цифры, изображающей знак числа, заменяются на противоположные ( 0 заменяется на 1, а 1 - на 0).

Пример_29:

Код Положительное число Отрицательное число
1(10) -1(10)
Прямой 0000 0001(2) 1000 0001(2)
Обратный 0000 0001(2) 1111 1110(2)

Пример_30:

Код Положительное число Отрицательное число
5(10) -5(10)
Прямой 0000 0101(2) 1000 0101(2)
Обратный 0000 0101(2) 1111 1010(2)

Для восстановления прямого кода отрицательного числа из обратного кода надо все цифры, кроме цифры, изображающей знак числа, заменить на противоположные.

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

Дополнительный код положительного числа совпадает с прямым, а код отрицательного числа образуется путем прибавления 1 к обратному коду.

Пример_31:

Код Положительное число Отрицательное число
6(10) -6(10)
Прямой 0000 0110(2) 1000 0110(2)
Обратный 0000 0110(2) 1111 1001(2)
Дополнительный 0000 0110(2) 1111 1010(2)

Пример_32:

Код Положительное число Отрицательное число
1(10) -1(10)
Прямой 0000 0001(2) 1000 0001(2)
Обратный 0000 0001(2) 1111 1110(2)
Дополнительный 0000 0001(2) 1111 1111(2)

Пример_33:

Для целого числа -32(10) записать дополнительный код.

1. После перевода числа 32(10) в двоичную систему счисления получим:

32(10)=100000(2).

2. Прямой код положительного числа 32(10) равен 0010 0000.

3. Для отрицательного числа -32(10) прямой код равен 1010 0000.

4. Обратный код числа -32(10) равен 1101 1111.

5. Дополнительный код числа -32(10) равен 1110 0000.

Пример_34:

Дополнительный код числа равен 0011 1011. Найти значение числа в десятичной системе счисления.

1. Первый (знаковый) разряд числа 0011 1011 равен 0, следовательно, число положительное.

2. У положительного числа дополнительный, обратный и прямой код совпадают.

3. Число в двоичной системе счисления получаем из записи прямого кода – 111011(2) (нули из старших разрядов отбрасываем).

4. Число 111011(2) после перевода в десятичную систему счисления равно 59(10).

Пример_35:

Дополнительный код числа равен 1011 1011. Найти значение числа в десятичной системе счисления.

1. Знаковый разряд числа 1011 1011 равен 1, следовательно, число отрицательное.

2. Для определения обратного кода числа из дополнительного кода вычитаем единицу. Обратный код равен 1011 1010.

3. Прямой код получаем из обратного заменой всех двоичных цифр числа на противоположные (1 на 0, 0 на 1). Прямой код числа равен 1100 0101 (в знаковом разряде записываем 1).

4. Число в двоичной системе счисления получаем из записи прямого кода – -100 0101(2).

4. Число -1000101(2)после перевода в десятичную систему счисления равно -69(10).

Наши рекомендации