Двоичная система счисления

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


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

Для записи любого числа в двоичной системе счисления используются всего лишь 2 цифры: 0 и 1.



Общая форма записи двоичных чисел


Для целых двоичных чисел можно записать:


an−1an−2...a1a0=an−1⋅2n−1+an−2⋅2n−2+...+a0⋅20

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


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


Основные правила сложения однобитовых чисел



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

Отсюда видно, что и, как и в десятичной системе счисления, числа, представленные в двоичной системе счисления, складывают поразрядно. Если разряд переполняется, единица переносится в следующий разряд.


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



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



0-0=0
1-0=0
10-1=1

Но как быть с 0-1=? Вычитание двоичных чисел немного отличается от вычитания десятичных чисел. Для этого используется несколько способов.



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


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


Вот несколько простых примеров:



1 - 0 = 1
11 - 10 = 1
1011 - 10 = 1001

Рассмотрим более сложную задачу. Вы должны запомнить только одно правило, чтобы решать задачи на вычитание двоичных чисел. Это правило описывает заимствование цифры слева, чтобы вы могли вычесть 1 из 0 (0 - 1).


110 - 101 = ?

В первом столбце справа вы получаете разность 0 - 1. Для ее вычисления необходимо позаимствовать цифру слева (из разряда десятков).


Во-первых, зачеркните 1 и замените ее на 0, чтобы получить такую задачу: 1010 - 101 = ?
Вы вычли («позаимствовали») 10 из первого числа, поэтому вы можете написать это число вместо цифры, стоящей справа (в разряд единиц). 101100 - 101 = ?
Вычтите цифры в правом столбце. В нашем примере:
101100 - 101 = ?


Правый столбец: 10 - 1 = 1.
102 = (1 x 2) + (0 x 1) = 210 (цифры нижнего регистра обозначают систему счисления, в которой записаны числа).
12 = (1x1) = 110.

Таким образом, в десятичной системе эта разность записывается в виде: 2 - 1 = 1.


Вычтите цифры в оставшихся столбцах. Теперь это легко сделать (работайте со столбцами, двигаясь, справа налево):


101100 - 101 = __1 = _01 = 001 = 1.


Вычитание методом дополнения


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


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



Рассмотрим пример: 1011002 - 111012= ?

Если значность чисел разная, к числу с меньшей значностью слева припишите соответствующее количество 0.



1011002 - 0111012= ?

В вычитаемом числе поменяйте цифры: каждую 1 поменяйте на 0, а каждый 0 на 1.




0111012 → 1000102.

На самом деле мы «забираем дополнение у единицы», то есть вычитаем каждую цифру из 1. Это работает в двоичной системе, так как у такой «замены» может быть только два возможных результата: 1 - 0 = 1 и 1 - 1 = 0.


К полученному вычитаемому прибавьте единицу.


1000102+ 12 = 1000112


Теперь вместо вычитания сложите два двоичных числа.


1011002 +1000112= ?


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


1) Переведем числа в двоичную систему счисления:
Допустим, что из числа 1011012 нужно вычесть 110112


2) Обозначим как A число 1011012 и как B число 110112.


3) Запишем числа A и B столбиком, одно под другим, начиная с младших разрядов (нумерация разрядов начинается с нуля).


Разр.

6

5

4

3

2

1

0

A

 

1

0

1

1

0

1

B

   

1

1

0

1

1


 


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



Заем
из текущего разряда
Oi-1

Ai

Bi

Ci

Заем
из следующего разряда
Oi+1

 

0

0

0

 

 

0

1

1

1

 

1

0

1

 

 

1

1

0

 

1

0

0

1

1

1

0

1

0

1

1

1

0

0

 

1

1

1

1

1


 


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


(красным шрифтом показаны заёмы из соответствующего разряда)


Получилось 1011012 - 110112 = 100102
или в десятичной системе счисления: 4510 - 2710 = 1810

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


В целом эти правила очень просты и понятны.



0*0=0
0*1=0
1*0=0
1*1=1

Умножение многоразрядных двоичных чисел происходит точно также как и обычных. Каждое значащий разряд умножаем на верхнее число по приведенным правилам, соблюдая позиции. Умножать просто - так как умножение на единицу даёт одно и тоже число.


×

     

1

1

1

0

       

1

0

1

 

+

     

1

1

1

0

 

1

1

1

0

   
 
 

1

0

0

0

1

1

0


 


Система счисления