Нехай необхідно перевести число 5.401 у двійкову систему числення. Ціла частина зображується двійковим числом 101. Дробову частину розкладемо за степенями двійки. Нам необхідно одержати стільки знаків двійкового зображення, щоб 103було менше , тобто . Тоді у двійковому розкладанні має бути не менше десяти знаків, оскільки 29= 512 і тільки 210= 1024.
Наведемо послідовність виконання алгоритму.
Крок 1.2–2= 0.25; 0.401 – 0.25 = 0.151.
Крок 2.Тепер необхідно степенем двійки зобразити 0.151:
2–3= 0.125; 0.151 – 0.125 = 0.026.
Крок 3. Найближчий до цього числа 0.026 степінь двійки
2–6 = 0.015625; 0.026 – 0.015625 = 0.010375.
Тепер наше уточнене двійкове число становить 0.011001. Після коми вже є шість знаків, але цього поки що недостатньо, тому виконуємо ще один крок.
Крок 4.Працюємо з числом 0.010375. Найближчий до цього числа степінь двійки 2–7= 0.0078125;
0.010375 – 0.0078125 = 0.0025625.
Крок 5. Працюємо з числом 0.0025625. Найближчий до цього числа степінь двійки 2–9= 0.001953125;
0.0025625 – 0.001953125 = 0.000609375.
Останній залишок менше 2–10, і якби ми бажали продовжувати наближення до вихідного числа, то нам би знадобилося 2–11, але це вже перевершує необхідну точність, отже, розрахунки можна припинити й записати остаточне двійкове зображення дробової частини:
|
|
0.401 = 0.011001101.
Остаточно маємо 5.401(10) = 101.011001101(2).
Розглянемо правила перетворення систем числення з кратними основами на прикладі двійкової, вісімкової та шістнадцяткової систем. Основами вісімкової та шістнадцяткової систем є цілі степені числа 2:
8 = 23, 16 = 24.
На цьому факті ґрунтується нижченаведений підхід.
Для переведення вісімкового чи шістнадцяткового числа у двійкову форму досить замінити кожну цифру цього числа відповідним три- чи чотирирозрядним двійковим числом, відкидаючи незначущі нулі в старших розрядах.
Переведемо числа 513.7(8) та 3Е7.В(16) у двійкову систему числення:
(5 1 3. 7)8 = (101001011.111)2
101 001 011 111
(3 E 7. B)16 = (1111100111.1011)2
0011 1110 0111 1011
Перехід від двійкової до вісімкової (шістнадцяткової) систем здійснюють у такий спосіб: рухаючись від десяткової крапки ліворуч і праворуч, розбивають двійкове число на групи по три розряди для вісімкової і по чотири – для шістнадцяткової систем, доповнюючи до необхідної кількості (три чи чотири) нулями крайні ліву та праву групи. Потім кожну групу заміняють відповідною вісімковою чи шістнадцятковою цифрами. Наприклад, переведемо двійкове число 10011101.110 у вісімкове:
010 011 101. 110 = (235.6)8,
2 3 5 6
а потім у шістнадцяткове:
1001 1101. 1100 = (9D.С)16.
9 D C
Розглянемо інші приклади.
Перевести число в десяткову систему числення:
1. 1000001(2).
1000001(2) =1 × 26+ 0 × 25+ 0 × 24+ 0 × 23+ 0 × 22+ 0 × 21+ 1 × 20 = 64 + 1 = 65(10).
2. 1000011111.0101(2).
1000011111.0101(2) = 1 × 29+ 1 × 24+ 1 × 23+ 1 × 22+ 1 × 21+ 1 × 20+
|
|
+ 1 × 2–2+ 1 × 2–4= 512 + 16 + 8 + 4 + 2 + 1 + 0.25 + 0.0625 = 543.3125(10).
3. 1216.04(8).
1216.04(8) = 1 × 83+ 2 × 82+ 1 × 81+ 6 × 80+ 4 × 8–2=
= 512 + 128 + 8 + 6 + 0.0625 = 654.0625(10).
4. 29A.5(16).
29A.5(16) = 2 × 162+ 9 × 161+ 10 × 160+ 5 × 16–1= 512 + 144 + 10 + 0.3125 = 656.3125(10).
Двійкова арифметика
До арифметичних належать операції додавання, віднімання, множення й ділення. Як вони виконуються з двійковими числами?
Наведемо двійкові операції і розглянемо детально їхнє виконання (табл. 5.2).
Таблиця 5.2
Двійкове додавання | Двійкове віднімання | Двійкове множення |
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 та одиниця перенесення в старший розряд | 0 – 0 = 0 1 – 0 = 1 1 – 1 = 0 10 – 1 = 1 | 0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 0 |