Содержание
Задачи деления двоичных чисел можно решить вручную или с помощью простой компьютерной программы. В качестве альтернативы, дополнительный метод повторного вычитания обеспечивает подход, с которым вы, возможно, не знакомы, но мало используемый в программировании. В языках программирования обычно используется более эффективный алгоритм оценки, но эта тема не рассматривается в этой статье.
Шаги
Метод 1 из 2: Использование длинного деления
- Узнайте, как делать десятичное деление вручную. Если вы какое-то время не делали десятичное деление (основание десять) вручную, просмотрите основы, используя пример 172 ÷ 4. В противном случае перейдите к следующему шагу и изучите тот же процесс для двоичных чисел.
- THE дивиденд делится на разделитель, и результат частное.
- Сравните делитель с первой цифрой делимого. Если оно больше, продолжайте добавлять цифры к делимому, пока делитель не станет наименьшим числом. Например, чтобы вычислить 172 ÷ 4, сравните 4 и 1; обратите внимание, что 4> 1, затем сравните 4 с 17.
- Напишите первую цифру частного над последней цифрой делимого, как если бы вы использовали ее при сравнении. Сравнивая 4 и 17, обратите внимание, что 4 соответствует числу 17 четыре раза, поэтому напишите 4 как первое частное число над 7.
- Умножьте и вычтите, чтобы найти остальное. Умножьте цифру частного на делитель; в данном случае 4 x 4 = 16. Запишите 16 под 17, затем вычтите 17–16, чтобы получить остальное, 1.
- Повторение. Опять же, сравните делитель 4 со следующей цифрой 1. Обратите внимание, что 4> 1, затем «уменьшите» следующую цифру делимого, чтобы сравнить 4 с 12. 4 точно (без остатка) входит в число 12, затем напишите 3 как следующее частное число. Ответ 43.
-
Поставьте задачу деления двоичного числа вручную. Давайте возьмем пример 10101 ÷ 11. Построим задачу деления, где 10101 - делимое, а 11 - делитель. Оставьте пробел вверху, чтобы указать частное, и внизу, чтобы произвести вычисления. - Сравните делитель с первой цифрой делимого. Это работает так же, как проблема ручного деления с десятичными числами, но на самом деле это проще с двоичными числами. Из двух одно: либо нельзя разделить число на делитель (0), либо делитель можно использовать один раз (1):
- 11> 1, поэтому 11 не «вписывается» в 1. Запишите 0 как первую цифру частного (над первой цифрой делимого).
-
Прокрутите до следующей цифры и повторяйте, пока не получите цифру 1. См. Следующие шаги для используемого примера:- Уменьшите следующую цифру делимого. 11> 10. Напишите 0 в частном.
- Уменьшите следующую цифру. 11 <101. Запишите 1 в частном.
- Найдите остальных. Как и при делении десятичных чисел вручную, необходимо умножить вновь найденную цифру (1) на делитель (11) и записать результат под делимым, выровненным с вновь вычисленной цифрой. В двоичном формате можно использовать ярлык, так как 1 x делитель всегда будет равен делителю:
- Напишите делитель под делимым. В этом случае напишите 11 с выравниванием под первыми тремя цифрами (101) делимого.
- Вычислите 101–11, чтобы получить остальное, 10. Если вам нужна помощь, см. Раздел «Как вычитать двоичные числа».
-
Повторяйте до конца проблемы. Опустите следующую цифру делителя рядом с остальными, чтобы получилось число 100. Поскольку 11 <100, запишите число 1 как следующую цифру в частном. Продолжайте вычислять задачу так же, как и раньше:- Напишите 11 под 100 и вычтите, чтобы получить 1.
- Уменьшите следующую цифру делимого.
- 11 = 11, поэтому запишите 1 как последнюю цифру частного (ответа).
- Отдыха нет, значит, проблема полная. Ответ 00111, или просто 111.
- При необходимости используйте точку. Иногда результат бывает неполным. Если после использования последней цифры все еще остается остаток, добавьте «.0» к делимому и «.» к частному, чтобы вы могли загрузить еще одну цифру и продолжить. Повторяйте, пока не достигнете желаемой конкретности и округлите ответ. На бумаге вы можете округлить, отрезав последний 0; или же, если последняя цифра 1, загрузите ее и добавьте 1 к последней цифре. В программировании следуйте одному из стандартных алгоритмов округления, чтобы избежать ошибок при преобразовании двоичного числа в десятичное.
- Как правило, проблемы с делением двоичных чисел заканчиваются повторением дробных частей - чаще, чем десятичными.
- Он известен как «дробная точка» и применяется к любому основанию, поскольку «десятичный разделитель» используется только в десятичной системе.
Метод 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. В используемом примере 011 становится 100.
- Прибавьте 1 к результату: 100 + 1 = 101. Таковы два дополнения, и они допускают вычитание как задачу сложения. Результат такой, как если бы вы добавляли отрицательное число вместо вычитания положительного в конце процесса.
- Добавьте результат к первому члену. Напишите и решите сложение: 111 + 101 = 1100.
- Отбросьте лишнюю цифру. Отбросьте первую цифру ответа, чтобы получить окончательный результат. 1100 → 100.
- Объедините две концепции выше. Теперь вы изучили метод вычитания для вычисления задач деления и два дополнительных метода для решения задач вычитания. Знайте, что их можно объединить в новый Метод расчета задач деления. Посмотрите, как это сделать, в приведенных ниже инструкциях. Если хотите, попытайтесь понять это сами, прежде чем продолжить.
- Вычтите делитель из делимого, добавив дополнение до двух. Давайте рассмотрим задачу 100011 ÷ 000101. Первый шаг с использованием метода двух дополнений - превратить вычитание в задачу сложения:
- Дополнение до двух 000101 = 111010 + 1 = 111011
- 100011 + 111011 = 1011110
- Отбросить лишнюю цифру → 011110.
- Добавьте 1 к частному. В компьютерной программе это точка, в которой частное увеличивается на единицу. Сделайте где-нибудь пометку на бумаге, чтобы не запутаться со счетами. Вычитание было выполнено один раз успешно; так что пока частное равно 1.
- Повторите вычитание делителя из остальных. Результатом последнего вычисления является остаток деления после однократного использования делителя. Продолжайте каждый раз прибавлять к делителю два, отбрасывая лишнюю цифру. Добавляйте 1 к частному каждый раз, повторяя процесс, пока не получите остаток, равный или меньший, чем делитель:
- 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 (без остатка).
подсказки
- Метод дополнения с двумя вычитаниями не работает с числами с разным количеством цифр. Однако, чтобы исправить это, добавьте нули к числу с меньшим количеством цифр.
- Игнорируйте знаковую цифру в знаковых двоичных числах перед вычислением, кроме случаев, когда необходимо определить, является ли ответ положительным или отрицательным.
- Инструкции по увеличению, уменьшению или удалению элемента из стека чисел должны быть рассмотрены перед выполнением любых двоичных вычислений для набора машинных инструкций.