Этот калькулятор умеет осуществлять простейшие арифметические операции над числами. Причем числа могут быть введены в разных системах счисления.
Вам необходимо определиться сколько чисел вам необходимо посчитать и выбрать это количество в графе количество чисел.
Далее Вам необходимо ввести каждое число и выбрать его систему счисления. Если в указанном списке Вы не нашли нужной СС, то выберите пункт другая и введите числом основание вашей системы счисления.
После ввода всех чисел и выбора арифметических операций нажмите кнопку рассчитать.
Поставить LIKE | и поделиться ссылкой |
Этот калькулятор умеет осуществлять простейшие арифметические операции над числами. Причем числа могут быть введены в разных системах счисления. Пример решения: 5436 7 — 1101 2 Введем сначала 5436 7 в поле "число 1" без основания СС (то есть без 7) и укажем его систему в соответствующем поле — выбираем пункт другая и вводим 7. Результат на скришоте: Теперь также введем число 11011 в двоичной системе счисления: Далее выбираем в поле "операция" вычитание и указываем что расчет должен быть выполнен в десятичной СС. Если мы хотим чтобы результат расчета был в двоичной СС, то указываем это как на скриншоте: Теперь нажимаем копку "Рассчитать" и смотрим результат: Если хотите посмотреть ход решения, то нажмите ссылку "Показать как оно получилось" Если Вам необходимо рассчитать более двух чисел то выберите нужное количество в пункте "Количество чисел" Максимум 7 чисел. Вы можете выполнять операции расчета деления столбиком. Алгоритмы деления двоичных чиселРассмотрим алгоритмы операции деления целых положительных двоичных чисел на , где А – 2п-разрядное делимое; В – и-разрядный делитель; . Полагаем, что частное является целым от-разрядным числом , при этом Алгоритм деления с восстановлением остатка. Значения разрядов частногоопределяются в результате анализа остатков, полученных после вычитания делителя В на первом шаге алгоритма из старших разрядов делимого Дст, а на последующих шагах – из старших разрядов текущего остатка. При положительном и пулевом значениях остатка разряд частного ck = 1. В этом случае для получения следующего остатка текущий остаток сдвигается на один разряд влево и из него вычитается делитель В. При отрицательном значении остатка текущий разряд частного ck = 0. Возникает тупиковая ситуация. Для выхода из нее восстанавливается предыдущий остаток путем прибавления делителя В к отрицательному остатку. Восстановленный остаток сдвигается на один разряд влево и из него вычитается делитель В. Операции восстановления и сдвига позволяют увеличить предыдущий остаток в два раза и продолжить операцию деления. Пример 2.30. Проиллюстрируем алгоритм с восстановлением остатка для случая п = 3, когда делимое А = 100011 (35|0), делитель В = 111 (710). Для вычитания делителя В воспользуемся операцией алгебраического сложения в дополнительном коде. Отрицательное значение делителя в дополнительном коде ( В) = 1001. Для выполнения операции деления введем дополнительные знаковые разряды, которые выделим жирным шрифтом. Последовательность действий при делении представлена ниже, на рис. 2.17. Рис. 2.17. Алгоритм деления двоичных чисел с восстановлением остатка Пример 2.31. При делении используются операции сложения и сдвига. В результате деления получено частное С=0101, которое, по сути дела, представляет собой совокупность переносов, возникающих в результате операций сложения. Алгоритм деления без восстановления остатка. При аппаратной реализации деления двоичных чисел операция сложения реализуется в сумматоре, а сдвига – в регистре. Регистр обладает способностью хранить предыдущий остаток во время выполнения операции суммирования. Поэтому восстановление остатка является необязательной операцией. При отрицательном значении текущего остатка необходимо воспользоваться хранящимся в регистре предыдущим остатком и произвести его сдвиг влево на один разряд. Пример 2.32. Алгоритм без восстановления остатка для тех же значений делителя и делимого аналогичен приведенному примеру 2.29 (рис. 2.18). Рис. 2.18. Алгоритм деления двоичных чисел без восстановления остатка При алгебраическом делении двоичных чисел необходимо выполнить раздельные действия по определению знака и модуля частного. Знак частного определяется с помощью операции сложения по модулю два над знаковыми разрядами так же, как и при умножении двоичных чисел. Ваша задача будет решена с вашими исходными данными OnLine и бесплатноЗадача: Разделить число A = 21310 на число B = 1710 в двоичной системе счисления, методом без восстановления остатка. Решение: 1) Переведем числа в двоичную систему счисления (работать будем только с модулями чисел, знак результата получим из анализа знаков исходных чисел): 21310 = 110101012 2) Впишем делимое A в 16-ти разрядный регистр, начиная с младших разрядов (нумерация разрядов начинается с нуля). В недостающие разряды записываем нули. |
Разр. | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
A: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
Обратите внимание! Так как для выполнения деления требуется производить операцию вычитания, это требует использования знаковой ариaметики. И поэтому в нашем случае 15-й разряд является знаковым (0 — соответствует положительному числу, 1 — отрицательному), а старшим разрядом числа является 14-й разряд.
3) Впишем делитель В в 16-ти разрядный регистр, начиная с младших разрядов. В недостающие разряды записываем нули.
Разр. | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
B: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
Здесь также как и с числом A 15-й разряд является знаковым, а старшим разрядом числа является 14-й разряд. Эти знаковые разряды будут показывать нам знаки, образующихся в процессе деления, частичных остатков. Они не имеет никакого отношения к знакам исходных операндов и знаку результата, а играют чисто технологическую роль.
4) Предварительный сдвиг делителя. Сдвинем делитель B влево так, чтобы позиция старшей значащей единицы, в нем, совпала с позицией старшей значащей единицы в делимом A. Количество необходимых для этого сдвигов запомним в числе k В нашем случае старшая значащая единица в делимом A расположена в 7-м разряде, a в делителе B — в 4-м разряде. Следовательно нам необходимо сдвинуть число B влево на 3 разряда (k = 3).
Сдвинутый делитель выглядит следующим образом :
Разр. | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
B: | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
5) Так как в процессе деления множитель B придется не только прибавлять но и вычитать, то нам необходимо иметь число -B. Для этого представим B в дополнительном коде. Перевод в дополнительный код осуществим в два этапа:
5.1)Вначале получим обратный код. Для этого просто проинвертируем каждый разряд регистра (заменим "0" на "1", а "1" на "0").
Разр. | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Bобр | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
5.2) Прибавим к числу в обратном коде единицу и получим дополнительный код.
Разр. | c | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
1 | 1 | 1 | |||||||||||||||
Bобр | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | |
+ | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | |
Bдоп | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
Таким образом -B = Bдоп
6) Процесс деления будет следующий:
6.1) Вычитаем из делимого А делитель В (т.е. прибавляем -В).
6.2) Анализируем знак полученного частичного остатка (15-й разряд). В регистр результата записываем "0" если остаток отрицательный и единицу в противном случае. Помним, что отрицательному числу соответствует наличие единицы в 15-м разряде и наоборот.
6.3) Сдвигаем частичный остаток на один разряд влево. При этом крайний правый (младший) разряд заполняется нулем, а знаковый разряд (15-й) в процессе сдвига не участвует.
6.4) Прибавляем к частичному остатку делитель В если остаток отрицательный либо вычитаем делитель в противном случае.
6.5) Анализируем знак полученного частичного остатка (15-й разряд). В регистр результата записываем "0" если остаток отрицательный и единицу в противном случае.
6.6) Действия описанные в пунктах 6.3-6.5 выполняем k раз (если k=0, то ни разу не выполняем).
Весь процесс деления выглядит следующим образом :