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

Автор: Super User Просмотров: 2084

 

Немного теории...

Числа, которыми мы привыкли пользоваться называются десятичными и арифметика, которой мы пользуемся, также называется десятичной. Это потому, что каждое число можно составить из набора цифр содержащего 10 символов - цифр - "0123456789".

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

Цифры, применяемые в широко используемых различных системах счисления:

0, 1 - цифры двоичной системы

0, 1, 2, 3, 4, 5, 6, 7 - цифры восьмеричной системы

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 - цифры десятичной системы

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A,  B, C, D, E, F - цифры шестнадцатеричной системы

Чтобы понять, что такое число в не десятичной арифметике сначала выясним, что такое число в десятичной арифметике.

Возьмём, к примеру, число 246. Эта запись означает, что в числе две сотни, четыре десятка и шесть единиц. Следовательно, можно записать следующее равенство:

246 = 200 + 40 + 6 = 2?102 + 4?101 + 6?100

Здесь знаками равенства отделены три варианта записи одного и того же десятичного числа. Наиболее интересна нам сейчас третья форма записи: 2?102 + 4?101 + 6?100 . Она устроена следующим образом:

В нашем числе три цифры. Старшая цифра "2" имеет номер 3. Так вот она умножается на 10 во второй степени. Следующая цифра "4" имеет порядковый номер 2 и умножается на 10 в первой. Уже видно, что цифры умножаются на десять в степени на единицу меньше порядкового номера цифры.

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

В общем, заменяем 10 на любое другое число и получаем совершенно другую систему счисления и другую арифметику. Наиболее простая арифметика получается, если 10 заменить на 2. Полученная система счисления называется двоичной

Эта система самая простая из всех возможных, так как в ней любое число образуется только из двух цифр 0 и 1. Понятно, что проще уже некуда. Примеры двоичных чисел : 10, 111, 101.

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

Пример:1102    - двоичная.                                                                                                         

 У чисел, записанных в десятичной системе счисления, индекс 10 обычно не пишется, но его можно писать. Так что  2 = 210 ,  10 = 1010 , и так далее.             

                                                                    

Можно ли двоичное число преобразовать в десятичное?
И наоборот. Можно ли десятичное число преобразовать в двоичное?

Двоичное в десятичное.

 Это очень просто. Метод такого перевода даёт наш способ записи чисел. Возьмём, к примеру, следующее двоичное число 1011. Разложим его по степеням двойки. Получим следующее:

1011 = 1?23 + 0?22 + 1?21 + 1?20

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

1?23 + 0?22 + 1?21 + 1?20 = 8 + 0+ 2 + 1 = 11. Таким образом, получаем, что 1011(двоичное) = 11 (десятичное). Сразу видно и небольшое неудобство двоичной системы. То же самое число, которое, в десятичной системе записано одним знаком в двоичной системе, для своей записи требует четыре знака. Но это плата за простоту.

Десятичное в двоичное.

 

К примеру, переведём число 345 из десятичной в двоичную систему счисления. Для этого  воспользуемся следующим алгоритмом: будем делить число 345 на 2, а остаток от каждого деления записывать отдельно. Повторяя эту процедуру до тех пор, пока частное не станет равным 0.

     частное      остаток                                                                                                     

345 : 2 = 172        1           (младший разряд) 
172 : 2 =   86        0    
  86 : 2 =   43        0 
  43 : 2 =   21         1 
  21 : 2 =   10         1 
  10 : 2 =     5          0 
    5 : 2 =     2          1                                                                                                                  
    2 : 2 =     1          0 
    1 : 2 =     0          1            (старший разряд)
34510 = 1010110012                        

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

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

1 + 1 = 10

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

Выполним пример: 10011 + 10001.                

+10011

­­­­­­­­­­­­­­­­­­­   10001

100100                  

Первый разряд: 1+1 = 2. Записываем 0 и 1 на ум пошло.

Второй разряд: 1+0+1(запомненная единица) =2. Записываем 0 и 1 на ум пошло.

Третий разряд: 0+0+1(запомненная единица) = 1. Записываем 1.

Четвертый разряд 0+0=0. Записываем 0.

Пятый разряд 1+1=2. Записываем 0 и добавляем  шестым разрядом 1.

Переведём все три числа в десятичную систему и проверим правильность сложения.

10011 = 1?24 + 0?23 + 0?22 + 1?21 + 1?20 = 16 + 2 + 1 =19

10001 = 1?24 + 0?23 + 0?22 + 0?21 + 1?20 = 16 + 1 = 17

100100 = 1?25 + 0?24 + 0?23 + 1?22 + 0?21 + 0?20 =32+4=36

17 + 19 = 36 верное равенство

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

0 – 0 = 0

1 – 0 = 1

0 – 1 = -1

1 – 1 = 0

При вычитании в столбик мы можем "занимать" единицу у следующего разряда, точно так же, как мы делаем это для десятичной системы. Эта занимаемая 1 равна двум 1 данного разряда.

                    _10011

­­­­­­­­­­­­­­­­­­­                               10001

                         00010                  

Переведём все три числа в десятичную систему и проверим правильность вычитания.

10011 = 1?24 + 0?23 + 0?22 + 1?21 + 1?20 = 16 + 2 + 1 =19

10001 = 1?24 + 0?23 + 0?22 + 0?21 + 1?20 = 16 + 1 = 17

00010 = 0?24 + 0?23 + 0?22 + 1?21 + 0?20  = 2

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

0 ? 0 = 0
1 ? 0 = 0
0 ? 1 = 0

1 ? 1 = 1

Это действие над двоичными числами можно выполнить в столбик, как мы делаем это для десятичных чисел:

                          10011

­­­­­­­­­­­­­­­­­­­                               Х      10

                          00000

                       10011

                       100110

Переведём все три числа в десятичную систему и проверим правильность умножения.

10011 = 1?24 + 0?23 + 0?22 + 1?21 + 1?20 = 16 + 2 + 1 =19

10=1?21+0?20= 2

100110 = 1?25 + 0?24 + 0?23 + 1?22 + 1?21 + 0?20 = 32 + 4 + 2 = 38

19?2=38 Верно.

Деление  двоичных чисел

Деление двоичных чисел производится по тем же правилам, что и для десятичных. При этом используются таблицы двоичного умножения и вычитания. Для лучшего понимания алгоритм деления разберём более подробно. Пусть нам необходимо разделить два десятичных числа, например 234 разделить на 7. Как мы это делаем в десятичной системе счисления.

234|7__  

Мы выделяем справа (от старшего разряда) такое количество цифр, чтобы получившееся число было как можно меньше и в то же время больше делителя. 2 - меньше делителя, следовательно, необходимое нам число 23. Затем делим полученное число на делитель с остатком. Получаем следующий результат:

                        _  234|7__

­­­­­­­­­­­­­­­­­­­                                   21  |3

                           24                  

          Описанную операцию повторяем до тех пор, пока полученный остаток не окажется меньше делителя. Когда это случится, число полученное под чертой, это частное, а последний остаток - это остаток операции.

_  234|7__

­­­­­­­­­­­­­­­­­­­    21  |33

    _ 24

       21

         3

Так вот операция деления двоичного числа выполняется точно также. Попробуем

11101010 | 111

                 |

Ищем число, от старшего разряда которое первое было бы больше чем делитель или равно ему. Это трёхразрядное число 111. Теперь необходимо подобрать делитель выделенному числу. И здесь мы опять выигрываем в сравнении в десятичной системой. Дело в том, что подбираемый делитель это обязательно цифра, а цифры у нас только две. Так как 111  равно 111, то с делителем всё понятно это 1. Выполним шаг операции.

11101010 | 111

111         | 1

0000

Итак, остаток от выполненной операции 000. Это меньше чем 111, поэтому чтобы выполнить второй шаг деления, необходимо добавить(снести) к 000 следующую цифру, это цифра 0. Так как всё равно получился 0, то и в частное записываем 0. И сносим вниз следующую цифру.

11101010 | 111

111         | 10

00001

00001 меньше 111 поэтому  мы опять допишем в частное цифру 0

11101010 | 111

111         | 100

00001

00001 меньше числа 111, поэтому сносим вниз следующую цифру.

11101010 | 111

111         | 100

000010

Опять получилось меньше. Дописываем в частное ещё один 0. И сносим следующую цифру.

11101010 | 111

111         | 1000

0000101

Число 0000101 меньше чем 111, поэтому в частное дописываем ещё один 0. И сносим следующую цифру.

11101010 | 111

111         | 10000

_00001010

            111

Число 00001010 больше чем 111, поэтому дописываем в частное цифру 1 и выполняем действие вычитания. При этом не забываем, что одна занятая единица из старшего разряда, равна двум единицам младшего разряда( того разряда, куда мы занимаем.

11101010 | 111

111         | 100001

_00001010

            111

          0011

В остатке получилось число 11, которое явно меньше числа 111. А так как сносить больше нечего, то вычисление закончено.

 Проверяем полученный результат.

11101010 = 1?27 + 1?26 + 1?25 + 0?24 + 1?23 + 0?22+ 1?21 + 0?20 = 128 + 64 + 32 + 0 +8 + 0 + 2 + 0 = 234

111 = 1?22 + 1?21 + 1?20 = 4 + 2 + 1 = 7

100001 = 1?25 + 0?24 + 0?23 + 0?22+ 0?21 + 1?20 = 32 + 0 + 0 + 0 + 0 + 1 = 33

 Верно.


Все права принадлежат ChipMK.ru. При копировании материала ссылка обязательна. 2011-2017 © ChipMK.ru

ChipMk.ru Яндекс.Метрика
PRCY.ru