Как вычитать в двоичной системе

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

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

0 + 0 = 0 1 + 0 = 1 0 + 1 = 1 1 + 1 = 10

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

Пример сложения многоразрядных двоичных чисел:

1101 + 101 —— 10010

Вычитание

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

0 — 0 = 0 1 — 0 = 1 0 — 1 = 1 1 — 1 = 0

В случае вычитания в текущем разряде из нуля единицы происходит заем из старшего разряда. По-сути мы вычитаем не из единицы, а из двоичного числа 10.

1110 — 101 —- 1001

Как вычитать в двоичной системе

Как нам всем известно со школьной скамьи, в компьютере — двоичная система счисления, и это означает, что там может быть только либо 0, либо 1 и ничего более, поэтому так система счисления и называется — двоичная. Еще эта система счисления позиционная, что означает, что каждый двоичный разряд в двоичном числе занимает строго отведенное ему место.

Для начала, рассмотрим как ведется счет чисел в двоичном и десятичном виде:
BIN Десятичное 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7

Из таблицы понятно, что двоичное число занимает 3 разряда, а вот десятичное — всего лишь 1 разряд. Получается, что для представления числа в двоичном виде требуется большее количество разрядов.

В трехразрядное двоичное число можно уместить 8 различных вариантов и комбинации, чтобы они не повторялись. В двухразрядное можно лишь поместить 4 комбинации, ну а в 1 разряд, естественно, только 2 комбинации.

Причем, если попытаться составить максимальное возможное количество комбинации 4-х разрядов, то выйдет вдвое больше, то есть, 16. Для 5 разрядов — 32, для 6 — 64 и так далее, количество комбинации каждый раз увеличивается вдвое и это понятно — ведь если добавить еще разряд, то там может быть либо 0, либо 1, то есть, это можно представить вдвое большее количество наборов, чем было до этого.

Чтобы точно знать, сколько можно представить чисел в n разрядов, надо перемножить 2 это количество раз n . Например, n=4 разряда, будет 2*2*2*2=16. В математике есть такая функция, которая называется показательной, или еще ее называют степень, которая выглядит как 2^n

, то есть, это количество раз, которое надо умножить на 2.

§ Числовой циферблат

А теперь допустим, что у нас есть 4 разряда и больше нет. Да, представим то, что есть 4 лампочки, которые надо последовательно зажигать от 0 до 15, потому что число 15 — это последнее возможное число для 4-битного числа. Причем, очень важно сообщить, что последнее возможное число в n -разрядном числе будет равно 2^n-1

Вычитание чисел в двоичной системе счисления. Лекция по информатике №4

, то есть, нужно возвести двойку в степень, равную количеству разрядов и вычесть единицу из него. Так, к примеру, последнее число для 3-х битов будет равно 7 (или 111), для 4-х битов будет равно 15 (или 1111), для 5 будет 31 (или 11111) и так далее.

Обращу пристальное внимание, что таким числом в двоичной системе всегда будут все единицы. Никаких исключений. А почему так? Все очень и очень просто — если добавить +1 ко всем единицам, то по ним пройдет полный перенос и они превратятся во все нули и плюс перенос в старший разряд.

А что если, если этого старшего разряда нет?! То есть после добавления 15+1 (или 1111+1) будет 0! Да, потому что некуда вместить этот старший разряд и поэтому все обращается в 0 и начинается сначала. Это явление называется числовым кольцом.

Если было 5 разрядов, то последнее число было бы 31, и после прибавления 31+1 стало бы равным 0. И это правило работает для всего, главное, это указать, сколько разрядов используется для хранения числа.

Теперь же давайте попробуем представить отрицательные числа на таком циферблате. Что такое отрицательное число? Это всего лишь положительное число, которое вычли из нуля:

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

Представим, что стрелка циферблата указывает на 0. Что будет, если добавить +2? Нужно сдвинуть стрелку на 1, потом еще на 1 вправо. Теперь стрелка указывает на 2. Добавим еще 3. Сдвигаем на 3 вправо, получаем 5. А теперь вычтем число 6! Крутить будет 6 раз влево. Теперь повернем 5 раз и стрелка указывает на 0. А что дальше будет? Нужно же еще раз повернуть влево, и куда будет указывать стрелка?

Если это 4-х битное число, то предыдущее значение будет равно 15 (или 1111). То есть, если повернуть стрелку направо, то получится число 15. Да, все так просто.

То есть, чтобы получить число -1 в дополненном коде, надо сдвинуть стрелку, которая стоит в позиции 0, на 1 влево и она переместится на последнее число, которое возможно в той битности, в которой сейчас работаем. Чтобы получить число -2, надо сдвинуть еще на 1 влево и так далее.

Давайте попробуем:
-1 | 1111 | 15 -2 | 1110 | 14 -3 | 1101 | 13 -4 | 1100 | 12 -5 | 1011 | 11 -6 | 1010 | 10 -7 | 1001 | 9 -8 | 1000 | 8

Как можно заметить, я не стал показывать -9, потому что, формально, это число уже не является отрицательным в дополненном коде. Число считается отрицательным, когда старший разряд в числе равен 1 и положительным, если 0. Если бы мы попробовали представить -9, то это было бы число 0111 (7) в двоичной системе. В таких случаях говорят, что произошло знаковое переполнение (overflow). Но эта информация пока не играет роли.

Как же определить, какой дополненный код соответствует отрицательному числу? На самом деле, все очень просто.

  • Сначала, надо узнать, для скольких разрядов будем составлять дополненный код, например n=3.
  • Получаем максимальное большое количество комбинации из этого кода, то есть 2^3

Сложение в различных системах счисления

Для выполнения сложения в восьмеричной системе счисления можно использовать следующую таблицу:

Пример: сложим числа 15 и 6 в различных системах счисления.

Вычитание в двоичной системе счисления

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

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

Двоичная арифметика

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

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

Таблица сложения, вычитания и умножения для двоичной системы счисления

СложениеВычитаниеУмножение
0 + 0 = 00 — 0 = 00 ∙ 0 = 0
0 + 1= 11 — 0 = 10 ∙ 1 = 0
1 + 0 = 11 — 1 = 01 ∙ 0 = 0
1 + 1 = 1010 — 1 = 11 ∙ 1 = 1

Сложение двоичных чисел

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

Пример : Вычислить 1011,12 + 1010,112

Двоичное сложение

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

Пример : Вычислить 111,12 + 1112 + 101,12

Двоичное сложение с переносом через разряд

При сложении в разряде единиц (разряд 0) оказывается 4 единицы, которые, объединившись, дают 1002. Поэтому из нулевого разряда в первый разряд переносится 0, а во второй — 1. Аналогичная ситуация возникает во втором разряде, где с учетом двух перенесенных единиц получается число 5 = 1012. 1 остается во втором разряде, 0 переносится в третий и 1 переносится в четвёртый.

Двоичное вычитание

Здесь рассматриваются правила, работающие в случае вычитания меньшего числа из большего. Все остальные случаи рассматриваются ниже в разделе 3.2, посвященном двоичной арифметике со знаками. В простейшем случае, для каждого разряда, правила двоичного вычитания имеют вид:

begin</p><p> _0 _1 _1 _? underline \ 0 1 0 /p><p> 0 1 getstext< изменение уменьшаемого в результате займа>\ _1 0 0 =33\ 1 1 =11\ cline 0 0 1 getstext< разность=22>\ end

begin</p><p> 0 0 1 gets text\ _1 1 0 =40\ 1 1 =27\ cline 0 1 0 gets text< >разность=13\ end

Очевидно, что как в десятичном, так и в двоичном коде, складывать значительно проще, чем вычитать. Поэтому большое распространение получила двоичная арифметика с учетом знаков чисел, где вычитание заменяется сложением чисел с учетом их знака. При этом уже не имеет значения соотношение чисел между собой, какое из них больше — вычитаемое или уменьшаемое. Знак разности получается автоматически.

Двоичная арифметика с учетом знаков чисел

В двоичном коде знак числа представляет собой разряд, приписываемый слева от значащих разрядов числа. Знак » +» обозначается логическим 0, знак » -» — логической 1. Для наглядности все примеры будем рассматривать для целых чисел, отделяя знаковый разряд точкой.

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

Так, в восьмиразрядном формате

Обратный код (ОК) для положительных чисел совпадает с прямым, т.е. к значащим разрядам приписывается знаковый разряд. Для отрицательных чисел значащие разряды инвертируются (нули заменяются на единицы, единицы — на нули), после чего приписывается знак.

Для того же числа обратный код имеет вид: (+ 10) = 0.0001010, (-10)=1.1110101.

Недостатком обратного кода является то, что одно и то же число (+0)и (-0)записывается по-разному: (+ 0) = 0.0000000, (-0)=1.1111111, что может вызвать нежелательное разночтение работы логической схемы. Поэтому предпочтительным является дополнительный код.

Дополнительный код (ДК) для положительных чисел совпадает с обратным и прямым, т.е. к значащим разрядам приписывается знаковый разряд. Для отрицательных чисел дополнительный код на 1 больше, чем обратный. После образования значащих разрядов приписывается знаковый разряд.

Для значащих разрядов отрицательного числа справедлива формула:

ДК=ОК+1.( 11.3)

(-0)

Напишем число в 7-разрядном дополнительном коде:

begin</p><p> _< >0 0 0 0 1 1 1 gets ОК \ 1 fbox 0 0 0 gets ДК \ end

(+0)=(-0)

Таким образом в дополнительном коде , следовательно, указанный недостаток обратного кода преодолен.

Рассмотрим образование дополнительного кода для числа 10. Для положительного числа (+ 10) = 0.0001010, а для отрицательного числа (-10) дополнительный ко д получается следующим образом:

begin</p><p> _< >0 0 0 0 1 0 0 gets ОК\ 1 1. 1 0 1 gets ДК end

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

Сложение двоичных чисел

Сложение двух двоичных чисел производится столбиком поразрядно. Начиная с младшего разряда (справа на лево), как и при сложении столбиком десятичных чисел. Но так как цифр всего две (0 и 1), их сложение происходит по следующим правилам:

Пример

Для примера сложим 1011 и 101:

+1011
101
10000

Вычитание двоичных чисел

Вычитание двоичных чисел производится аналогично сложению – столбиком, но по следующим правилам:

Пример

Для примера вычтем из числа 1011 число 101:

1011
101
110

Двоичная арифметика

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

Числа записываются друг под другом с учетом разрядов. При необходимости производится перенос в старший разряд или заем из старшего разряда.

При сложении двоичных чисел следует помнить, что в числовом двоичном ряду после 1 идет 10. Это означает, что 1 + 1 = 10, а 11 + 1= 100.

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

Сложение

Вычисление суммы двоичных чисел производится следующим образом: числа записываются в столбик. Затем производится поразрядное суммирование цифр, начиная с младшего разряда, как в десятичной системе. Если сумма цифр текущего разряда превышает его размер, то происходит перенос единицы в старший разряд.

Правила сложения двоичных чисел:

Например, сумма двоичных чисел 1000111 + 110011 = 1111010

Двоичная арифметика

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

Таблица сложения

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

Таблица умножения

Таблица умножения ещё проще. Здесь нужно твёрдо знать, что любое число, умноженное на нуль, есть нуль и что умножение на единицу не меняет числа.

Сложение многозначных чисел производится точно так же, как и в десятичной системе, то есть поразрядно, начиная с младшего. Например:

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

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

Умножение и деление двоичных чисел практически не отличается от умножения и деления чисел, записанных в десятичной системе счисления. Единственным отличием является то, что при умножении в столбик не приходится находить произведение первого множителя на значения последовательных разрядов второго множителя, так как значение этих разрядов 1 или 0. А при делении в столбик не нужно подбирать неполное делимое, так как учитывая специфику двоичных чисел, неполное делимое можно определить просто посмотрев на делимое.

Примеры. Выполнить умножение и деление:

Оцените статью
TutShema
Добавить комментарий