Зрушення можна здійснювати і праворуч

- в цьому випадку при зрушенні на 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

Ще кілька прикладів віднімання двійкових чисел:

У круглих дужках наведено еквіваленти в десятковому форматі