Зрушення можна здійснювати і праворуч
- в цьому випадку при зрушенні на 1 розряд буде проводитися розподіл на 2, - зрушуючи вправо на 2 розряди буде проводитися розподіл на 4 і т.д.
Що найцікавіше, зрушення можна робити і з десятковими числами! Взяти те число 1010 і зрушити його вліво - тобто. ми приєднуємо додатковий 0 з боку молодшого розряду. Виходить 10010 В основі зсуву операція проводиться з основою системи числення до якої належить число, над яким проводять операції зсуву.
У Терміналі за допомогою Python'а можна також робити операцію зсуву стосовно числа.
Проводиться ця операція за допомогою оператора:
- "> " для зсуву вправо
Якщо застосовувати зрушення до десяткових чисел у Пітоні, то операція здійснюється шляхом бітового зсуву, тобто. відбувається перетворення десяткового числа на двійкове, далі застосовується зсув і отримане число знову перетворюється на десяткове.
Тобто. якщо ми наберемо у Терміналі:
Отримаємо -12
Щоб застосувати зсув до іншої системи числення, необхідно використати відповідний запис. Наприклад для двійкового числа:
Для двійкового формату це твердження також справедливе
Якщо знакове число +1 у двійковому форматі додати до -1, то має вийти нуль (результат буде з переповненням)
| + | +/- знак числа |
| 110 | |
| -110 | |
| 010 |
| + | +/- знак числа |
| 310 | |
| -310 | |
| 010 |
І ще один приклад
| + | +/- знак числа |
| 510 | |
| -510 | |
| 010 |
Переклад позитивного числа на негативне
Для того, щоб зробити переклад позитивного двійкового числа негативно треба зробити наступне:
- у вихідному числі міняємо всі нулі на одиниці, а одиниці на нулі - до молодшого байта додаємо 1
Наприклад візьмемо позитивне двійкове число0101 2 (510) і зробимо з нього негативне - міняємо одиниці на нулі та нулі на одиниці:1010 2 - додаємо одиницю до молодшого розряду:1011 2
Якщо ми говоримо про двійкове число зі знаком (у якого старший розряд є показником знака: 0 - позитивне число, 1 - негативне) то отриманий результат буде відповідати -5 в десятковій системі числення
Візьмемо 01102 (610) і теж поміняємо йому знак: - змінюємо одиниці на нулі та нулі на одиниці: 10012 - додаємо одиницю до молодшого розряду: 10102 (-610)
Віднімання двійкових чисел (стовпчиком)
Пам'ятаєте як ми робимо віднімання чисел стовпчиком у нашій звичній десятковій системі числення?
Віднімання десяткових чиселВіднімемо з десяткового числа 10080 число 1901 10080 - 1901 = 8179
Червоним кольором виділено розряди числа
10080 - 1901 = 8179
Віднімання двійкових чисел
Для віднімання стовпчиком двійкових чисел діють самі правила, лише як позикового числа виступає число 2, а чи не 10, оскільки ми оперуємо значенням двійкової системи числення - 2
Правила віднімання ті ж:
1101110 (десяткове 110)
- 10111 (десяткове 23)
=1010111 (десяткове 87)
Принцип віднімання наступний:
| - |
| ( 11010 ) |
| ( 2310 ) |
Розберемо процес віднімання докладніше Номери бітів вказані червоним кольором для наочності
Розбір перебуває під катом.
Перевірте в Терміналі його десяткове значення:
Виходить87, що відповідає дійсності:110 - 23 = 87
Ще кілька прикладів віднімання двійкових чисел:
У круглих дужках наведено еквіваленти в десятковому форматі