Двійкові числа можна ділити в стовпчик, щоб краще зрозуміти сам процес або написати просту комп'ютерну програму. Також можна застосувати метод доповнень, який досить рідко використовується в програмуванні.[1] як правило, машинні мови використовують алгоритм оцінки для більшої ефективності, але мова в даній статті піде не про це.[2]
Кроки
Метод1 З 2:
Ділення в стовпчик
Метод1 З 2:
- Розділіть в стовпчикДва десяткових числа.якщо ви призабули, що таке поділ в стовпчик, розділіть два десяткових (підстава 10) числа: 172 ÷ 4. Якщо ви прекрасно ділите в стовпчик, перейдіть до наступного кроку, щоб дізнатися, як ділити двійкові числа.
- Діленеділиться наДільникі виходитьПРИВАТНЕ.
- Порівняйте дільник з першою цифрою діленого. Якщо дільник більше цієї цифри, Порівняйте дільник з двома цифрами діленого і так далі, поки дільник не стане менше розглянутого числа. У нашому прикладі Порівняйте 4 і 1, відзначте, що 4 gt; 1, а потім порівняйте 4 з 17.
- Напишіть першу цифру приватного під дільником. Порівнявши 4 і 17, ви побачите, що 17 ÷ 4 = 4 з залишком, тому напишіть 4 Як першу цифру приватного під дільником (4).
- Помножте і відніміть, щоб знайти залишок. Помножте першу цифру на дільник; в нашому прикладі: 4 x 4 = 16. Запишіть 16 під 17, а потім відніміть 17 - 16, щоб знайти залишок 1.
- Повторіть порівняння. Порівняйте дільник 4 з залишком 1, відзначте, що 4 gt; 1, і «знесіть» наступну цифру діленого, щоб порівняти 4 з 12. Так як 12 ÷ 4 = 3 без залишку, тому напишіть 3 як другу цифру. Остаточна відповідь: 43.
- Розділіть в стовпчик два двійкових числа.наприклад, 10101 ÷ 11. Тут 10101-ділене, а 11 — дільник. Залиште достатньо місця для обчислень.
- Порівняйте дільник з першою цифрою діленого.у випадку з двійковими числами зробити це простіше, ніж з десятковими: або число не ділиться на дільник і записуємо 0, або ділиться і записуємо 1.
- 11 gt; 1, тому 1 не можна розділити на 11. Напишіть 0 як першу цифру приватного (під дільником).
- Продовжуйте порівнювати числа з дільником, поки не отримаєте 1. у нашому прикладі:
- Порівняйте дільник з двома цифрами діленого. 11 gt; 10. Напишіть 0 як другу цифру.
- Порівняйте дільник з трьома цифрами діленого. 11 lt; 101. Напишіть 1 Як третю цифру.
- Обчисліть залишок.помножте знайдену цифру (1) на дільник (11) і запишіть отриманий результат під діленим (а саме під відповідними розрядами). Зверніть увагу, що при множенні 1 на дільник завжди виходить дільник.
- Запишіть дільник під діленим. У нашому прикладі запишіть 11 під першими трьома цифрами (101) діленого.
- Відніміть 101-11, щоб отримати залишок 10. Якщо ви не пам'ятаєте, як віднімати двійкові числа, прочитайте цю статтю.
- Повторіть описані дії, поки не вирішите завдання.додайте наступну цифру діленого до залишку, щоб отримати 100. Так як 11 lt; 100, напишіть 1 Як четверту цифру приватного. Подальші обчислення:
- Напишіть 11 під 100 і відніміть, щоб отримати залишок 1;
- Додайте останню цифру діленого до залишку, щоб отримати 11;
- 11 = 11, тому напишіть 1 Як останню цифру.
- Залишку немає, тому завдання вирішене. Відповідь:00111 або просто 111.
- Додайте десяткову кому (якщо потрібно).іноді результат не є цілим числом. Якщо після того, як ви використовували останню цифру діленого, вийшов залишок,припишіть«, 0» до діленого і«, » до приватного, щоб «знести» наступну цифру і продовжити обчислення. Повторіть цей процес до тих пір, поки не отримаєте результат потрібної точності, а потім округлите відповідь. Щоб округлити отриманий результат, позбудьтеся від останнього 0, або, якщо остання цифра 1, відкиньте її і додайте 1 до нової останньої цифри. У програмуванні дотримуйтесь одного зі стандартних алгоритмів округлення, щоб уникнути помилок при перетворенні між двійковими і десятковими числами.[3]
Метод2 З 2:
Доповнення
Метод2 З 2:
- Зрозумійте основні принципи. щоб розділити два числа (як десяткові, так і двійкові), можна відняти дільник з діленого, а потім послідовно віднімати дільник із залишків, поки не вийде негативне число; при цьому потрібно рахувати, скільки віднімань було виконано. Наприклад, обчисліть 26 ÷ 7:
- 26 - 7 = 19 (1 віднімання)
- 19 - 7 = 12 (2)
- 12 - 7 = 5 (3)
- 5 - 7 = -2. Негативне число, тому далі віднімати не потрібно. Відповідь:3 із залишком 5. Зверніть увагу, що цей метод не обчислює дробову частину відповіді.
- Зрозумійте основи методу доповнень.викладений вище метод можна застосувати до двійкових чисел, а можна використовувати більш ефективний спосіб, який дозволить заощадити час при програмуванні ділення двійкових чисел. Такий спосіб називається методом доповнень. Наприклад, відніміть 111-011 (обидва числа повинні мати однакову кількість цифр):
- Знайдіть Доповнення до другого числа. Для цього відніміть кожну цифру цього числа з 1. У двійковій системі просто замініть 1 на 0, а 0 на 1.[6][7] у нашому прикладі 011 стане 100.
- До отриманого результату додайте 1: 100 + 1 = 101. Цей процес називається доповненням до двох і дозволяє замінити віднімання операцією додавання.[8] по суті, цей метод полягає в тому, що ви додасте негативне число замість віднімання позитивного.
- Отриманий результат додайте до першого числа. Запишіть і обчисліть операцію додавання: 111 + 101 = 1100.
- Відкиньте першу цифру отриманого результату, щоб отримати остаточну відповідь: 1100 →100.
- Об'єднайте два методи, які описані вище.перший метод-це метод послідовного віднімання, а другий-метод Доповнення до двох. Ці методи можна об'єднати в один, щоб з його допомогою ділити числа (процес об'єднання методів описується далі).[9] якщо хочете, спробуйте самостійно зрозуміти, як об'єднати два методи.
- Відніміть дільник з діленого, замінивши віднімання складанням за допомогою Доповнення до двох.наприклад: 100011 ÷ 000101. Спочатку віднімання 100011-000101 Перетворіть на додавання, використовуючи Доповнення до двох:
- Доповнення до двох: 000101 = 111010 + 1 = 111011
- Додавання: 100011 + 111011 = 1011110
- Позбудьтеся від першої цифри: 011110
- Додайте 1 до приватного.у комп'ютерній програмі це рядок, де ПРИВАТНЕ збільшується на одиницю. На папері зробіть замітку, щоб не заплутатися. Ви успішно відрахували один раз, тому на даний момент ПРИВАТНЕ дорівнює 1.
- Повторіть описаний процес.для цього відніміть дільник із залишку. Залишок-це результат останнього обчислення. Операцію віднімання замініть складанням: до залишку додавайте доповнений до двох дільник, а потім позбавляйтеся від Перший цифри результату. Після кожного віднімання до приватного додавайте 1. Повторіть описаний процес, доки залишок не буде рівним або меншим за дільник:[10]
- 011110 + 111011 = 1011001 → 011001 (ПРИВАТНЕ1+1=10)
- 011001 + 111011 = 1010100 → 010100 (ПРИВАТНЕ10+1=11)
- 010100 + 111011 = 1001111 → 001111 (11+1=100)
- 001111 + 111011 = 1001010 → 001010 (100+1=101)
- 001010 + 111011 = 10000101 → 0000101 (101+1=110)
- 0000101 + 111011 = 1000000 → 000000 (110+1=111)
- 0 менше 101, тому далі обчислювати не потрібно. ПРИВАТНЕ111 є остаточним результатом операції поділу. Залишок є кінцевим результатом операції віднімання; в нашому прикладі це 0 (залишку немає).
Поради
- Ігноруйте знаковий розряд в двійкових числах зі знаком, за винятком випадків, коли потрібно зрозуміти, отриманий позитивний або негативний результат.
- Метод Доповнення до двох не застосовується, якщо числа складаються з різної кількості цифр. В цьому випадку до меншого числа припишіть (зліва) відповідну кількість 0.
- Інструкції щодо збільшення, зменшення або вилучення стека необхідно врахувати перед застосуванням бінарних операцій до машинним командам.
Джерела
- ↑ Http://www.eetimes.com/author.asp?section_id=14amp;doc_id=1282912
- ↑ Http://electronics.stackexchange.com/questions/22410/how-does-division-occur-in-our-computers
- ↑ Http://www.cs.rit.edu/~mtf/student-resources/20131_tilleti_mscourse.pdf
- ↑ Http://www.exploringbinary.com/binary-division/
- ↑ Http://mathforum.org/library/drmath/view/56091.html
- ↑ Http://academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm
- ↑ Http://courses.cs.vt.edu/~csonline/NumberSystems/Lessons/OnesComplement/index.html
- ↑ Http://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html
- ↑ Http://academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm