АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Двійкова арифметика

Читайте также:
  1. Двійкова система числення

Правила виконання арифметичних дій над двійковими числами задаються таблицями двійкового складання, віднімання і множення (таб. 2).

 

Таблиця 2. Таблиці арифметичних дій

Таблиця двійкового складання Таблиця двійкового віднімання Таблиця двійкового множення
0+0=0 0+1=1 1+0=1 1+1=10 0-0=0 1-0=1 1-1=0 10-1=1 0 0=0 0 1=0 1 0=0 1 1=1

2.1. Складання двійкових чисел. Спосіб складання стовпчиком загалом такий же як і для десяткового числа. Тобто, складання виконується порозрядно, починаючи з молодшої цифри. Якщо при складанні двох цифр виходить СУМА більше дев'яти, то записується цифра = СУМА – 10, а ЦІЛА ЧАСТИНА (СУМА /10), додається в старшому розряді. Так і з двійковим числом. Складаємо порозрядно, починаючи з молодшої цифри. Якщо виходить більше 1, то записується 1 і 1 додається до старшого розряду (говорять "на ум пішло").

Виконаємо приклад: 10011 + 10001.

           
           
           

Перший розряд: 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 вірна рівність.

2.2. Віднімання двійкових чисел. Віднімати числа, будемо також стовпчиком і загальне правило теж, що і для десяткових чисел, віднімання виконується порозрядно і якщо в розряді не вистачає одиниці, то вона займається в старшому. Вирішимо наступний приклад:

         
-        
         

Перший розряд: 1 - 0 =1. Записуємо 1.

Другий розряд: 0 -1.Не вистачає одиниці. Займаємо її в старшому розряді. Одиниця із старшого розряду переходить в молодший, як дві одиниці (тому що старший розряд представляється двійкою більшої міри) 2-1 =1. Записуємо 1.

Третій розряд: Одиницю цього розряду ми займали, тому зараз в розряді 0 і є необхідність зайняти одиницю старшого розряду. 2-1 =1. Записуємо 1.

Перевіримо результат в десятковій системі

1101 - 110 = 13 - 6 = 7 (111) Вірна рівність.

Ще один цікавий спосіб виконання віднімання пов'язаний з поняттям додаткового коду, який дозволяє звести віднімання до складання. Виходить число в додатковому коді виключно просто, беремо число, замінюємо нулі на одиниці, одиниці навпаки замінюємо на нулі і до молодшого розряду додаємо одиницю. Наприклад, 10010, в додатковому коді буде 011011.

Правило віднімання через додатковий код стверджує, що віднімання можна замінити на складання якщо від'ємник замінити на число в додатковому коді.

Приклад 15. 34 - 22 = 12

Запишемо цей приклад в двійковому виді. 100010 - 10110 = 1100

Додатковий код числа 10110 буде такий 001001 + 00001 = 01010. Тоді початковий приклад можна замінити складанням так 100010 + 01010 = 101100 Далі необхідно відкинути одну одиницю в старшому розряді. Якщо це зробити то, отримаємо 001100. Відкинемо незначущі нулі і отримаємо 1100, тобто приклад вирішений правильно.

2.3. Множення в двійковій системі числення. Спершу розглянемо наступний цікавий факт. Для того, щоб помножити двійкове число на 2 (десяткова двійка це 10 в двійковій системі) досить до множеного числа ліворуч приписати один нуль.

Приклад 16. 10101 * 10 = 101010

Перевірка.

10101 = 1*24 + 0*23 + 1*22 + 0*21 +1*20 = 16 + 4 + 1 = 21

101010 =1*25 + 0*24 + 1*23 + 0*22 +1*21 +0*20 = 32 + 8 + 2 = 42

21 * 2 = 42

Якщо ми згадаємо, що будь-яке двійкове число розкладається по ступенях двійки, то стає ясно, що множення в двійковій системі числення зводиться до множення на 10 (тобто на десяткову 2), а отже, множення це ряд послідовних зрушень. Загальне правило таке: як і для десяткових чисел, множення двійкових виконується порозрядно. І для кожного розряду другого множника до першого множника додається один нуль справа.

Приклад 17 (поки не стовпчиком):

1011 * 101 Це множення можна звести до суми трьох порязрядных множень:

1011 * 1 + 1011 * 0 + 1011 * 100 = 1011 +101100 = 110111. В стовпчик це ж саме можна записати так:

 

           
  *        
           
           
           
           

Перевірка:

101 = 5 (десяткове)

1011 = 11 (десяткове)

110111 = 55 (десяткове)

5*11 = 55 вірна рівність.

2.4. Ділення в двійковій системі числення. Ми вже розглянули три дії і можна зробити висновок, що загалом дії над двійковими числами мало відрізняються від дій над десятковими числами. Різниця з'являється тільки в тому, що цифр дві а не десять, але це тільки спрощує арифметичні операції. Так само йде справа і з діленням, але для кращого розуміння алгоритм ділення розберемо детальніше. Нехай нам необхідно розділити два десяткові числа, наприклад 234 розділити на 7. Як ми це робимо.

 

         
         

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

           
-          
           

Описану операцію повторюємо до тих пір, поки отриманий залишок не виявиться менше дільника. Коли це станеться, число отримане під рисою, це частка, а останній залишок – це залишок операції. Так от операція ділення двійкового числа виконується точно так. Спробуємо на прикладі.

 

Приклад 18. 10010111 / 101

                     
                     

Шукаємо число, від старшого розряду яке перше було б більше ніж дільник. Це чотирирозрядне число 1001. Воно виділене жирним шрифтом. Тепер необхідно підібрати дільник виділеному числу. І тут ми знову виграємо в порівнянні в десятковою системою. Річ у тому, що підібраний дільник це обов'язково цифра, а цифри у нас тільки дві. Оскільки 1001 явно більше 101, то з дільником усе зрозуміло це 1. Виконаємо крок операції.

                       
-                      
                       

Отже, залишок від виконаної операції 100. Це менше ніж 101, тому щоб виконати другий крок ділення, необхідно додати до 100 наступну цифру, це цифра 0. Тепер маємо наступне число:

                       
-                      
                       

 

1000 більше 101 тому на другому кроці ми знову допишемо в частку цифру 1 і отримаємо наступний результат (для економії місця відразу опустимо наступну цифру).

                       
-                      
                       
  -                    
                       

Третій крок. Отримане число 110 більше 101, тому і на цьому кроці ми запишемо в частку 1. Виходить так:

                       
-                      
                       
  -                    
                       
      -                
                       

Отримане число 11 менше 101, тому записуємо в частку цифру 0 і опускаємо вниз наступну цифру. Виходить так:

                             
-                            
                             
  -                          
                             
      -                      
                             

 

Отримане число більше 101, тому в частку записуємо цифру 1 і знову виконуємо дії. Виходить так:

                             
-                            
                             
  -                          
                             
      -                      
                             
          -                  
                             

Отриманий залишок 10 менше 101, але у нас закінчилися цифри в ділимому, тому 10 це остаточний залишок, а 1110 це шукане частка.

Перевіримо в десяткових числах

10010011 = 147

101 = 5

10 = 2

11101 = 29

           
-          
           
  -        
           

На цьому ми закінчуємо опис простих арифметичних операцій, які необхідно знати, для того, щоб користуватися двійковою арифметикою, і тепер спробуємо відповісти на питання "Навіщо потрібна двійкова арифметика". Звичайно, вище вже було показано, що запис числа в двійковій системі істотно спрощує арифметичні операції, але в той же час сам запис стає значно довше, що зменшує цінність отриманого спрощення, тому необхідно пошукати такі завдання, рішення яких істотно простіше в двійкових числах.


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)