запишите десятичный эквивалент числа представленного в прямом коде 00000111
Прямой, дополнительный и обратный коды
Прямой, дополнительный и обратный код числа (создан по запросу).
Далее идет калькулятор, который переводит введенное положительное или отрицательное целое число в двоичный код, а также выводит обратный код этого числа и его дополнительный код. Под калькулятором, как водится, немного теории.
Обновление: Из комментариев становится ясно, что люди не вполне понимают, что делает этот калькулятор. Точнее, что делал — применял алгоритм вычисления дополнительного кода к любому числу. Люди хотят, чтобы он им просто показывал дополнительный код числа. Ну хорошо — теперь при вводе положительного числа калькулятор показывает представление числа в двоичной форме, ибо для него нет обратного и дополнительного кода, а при вводе отрицательного показывает дополнительный и обратный код.
Прямой, дополнительный и обратный код
Прямой код числа это представление беззнакового двоичного числа. Если речь идет о машинной арифметике, то как правило на представление числа отводится определенное ограниченное число разрядов. Диапазон чисел, который можно представить числом разрядов n равен
Обратный код числа, или дополнение до единицы (one’s complement) это инвертирование прямого кода (поэтому его еще называют инверсный код). То есть все нули заменяются на единицы, а единицы на нули.
Дополнительный код числа, или дополнение до двойки (two’s complement) это обратный код, к младшему значащему разряду которого прибавлена единица
А теперь «зачем, зачем это все?» ©
Для различия положительных и отрицательных чисел выделяют старший разряд числа, который называется знаковым (sign bit)
0 в этом разряде говорит нам о том, что это положительное число, а 1 — отрицательное.
С положительными числами все вроде бы понятно, для их представления можно использовать прямой код
0 — 0000
1 — 0001
7 — 0111
А как представить отрицательные числа?
И это оказалось очень удобно для машинных вычислений — при таком представлении отрицательного числа операции сложения и вычитания можно реализовать одной схемой сложения, при этом очень легко определять переполнение результата (когда для представления получившегося числа не хватает разрядности)
Пара примеров
7-3=4
0111 прямой код 7
1101 дополнительный код 3
0100 результат сложения 4
-1+7=6
1111 дополнительный код 1
0111 прямой код 7
0110 результат сложения 6
Что касается переполнения — оно определяется по двум последним переносам, включая перенос за старший разряд. При этом если переносы 11 или 00, то переполнения не было, а если 01 или 10, то было. При этом, если переполнения не было, то выход за разряды можно игнорировать.
Примеры где показаны переносы и пятый разряд
00111 прямой код 7
00001 прямой код 1
01110 переносы
01000 результат 8 — переполнение
Два последних переноса 01 — переполнение
-7+7=0
00111 прямой код 7
01001 дополнительный код 7
11110 переносы
10000 результат 16 — но пятый разряд можно игнорировать, реальный результат 0
Два последних переноса 11 з перенос в пятый разряд можно отбросить, оставшийся результат, ноль, арифметически корректен.
Опять же проверять на переполнение можно простейшей операцией XOR двух бит переносов.
Вот благодаря таким удобным свойствам дополнительный код это самый распространенный способ представления отрицательных чисел в машинной арифметике.
Перевод чисел из одной системы счисления в другую
Данный конвертер переводит числа между наиболее популярными системами счисления: десятичной, двоичной, восьмеричной, шестнадцатеричной.
Существуют и другие системы счисления, но мы не стали включать их в конвертер из-за низкой популярности.
Для указания системы счисления при записи числа используется нижний индекс, который ставится после числа:
20010 = 110010002 = 3108 = C816
Кратко об основных системах счисления
Десятичная система счисления. Используется в повседневной жизни и является самой распространенной. Все числа, которые нас окружают представлены в этой системе. В каждом разряде такого числа может использоваться только одна цифра от 0 до 9.
Двоичная система счисления. Используется в вычислительной технике. Для записи числа используются цифры 0 и 1.
Восьмеричная система счисления. Также иногда применяется в цифровой технике. Для записи числа используются цифры от 0 до 7.
Перевод в десятичную систему счисления
Перевод из десятичной системы счисления в другие
Делим десятичное число на основание системы, в которую хотим перевести и записываем остатки от деления. Запишем полученные остатки в обратном порядке и получим искомое число.
Переведем число 37510 в восьмеричную систему:
Перевод из двоичной системы в восьмеричную
Так же как и в первом способе разбиваем число на группы. Но вместо преобразований в скобках просто заменим полученные группы (триады) на соответствующие цифры восьмеричной системы, используя таблицу триад:
Перевод из двоичной системы в шестнадцатеричную
Также как и в первом способе разбиваем число на группы по 4 цифры. Заменим полученные группы (тетрады) на соответствующие цифры шестнадцатеричной системы, используя таблицу тетрад:
Тетрада | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
Перевод из восьмеричной системы в двоичную
Каждый разряд восьмеричного числа будем делить на 2 и записывать остатки в обратном порядке, формируя группы по 3 разряда двоичного числа. Если в группе получилось меньше 3 разрядов, тогда дополняем нулями. Записываем все группы по порядку, отбрасываем ведущие нули, если имеются, и получаем двоичное число.
Используем таблицу триад:
Каждую цифру исходного восьмеричного числа заменяется на соответствующие триады. Ведущие нули самой первой триады отбрасываются.
Перевод из шестнадцатеричной системы в двоичную
Аналогично переводу из восьмеричной в двоичную, только группы по 4 разряда.
Используем таблицу тетрад:
Цифра | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Тетрада | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
Каждую цифру исходного числа заменяется на соответствующие тетрады. Ведущие нули самой первой тетрады отбрасываются.
Перевод из восьмеричной системы в шестнадцатеричную и наоборот
Такую конвертацию можно осуществить через промежуточное десятичное или двоичное число. То есть исходное число сначала перевести в десятичное (или двоичное), и затем полученный результат перевести в конечную систему счисления.
Обратный и дополнительный коды двоичных чисел
Пример перевода
x1=10101-[x1]пр=010101
x2=-11101-[x2]пр=111101
x3=0,101-[x3]пр=0,101
x4=-0,111-[x4]пр=1,111
2) Обратный код числа, используется для выполнения арифметических операций вычитания, умножения, деления, через сложение. Обратный код положительного числа совпадает с его прямым кодом, обратный код отрицательного числа формируется по правилам: в знаковом разряде записывается “1”; цифровые значения меняются на противоположные.
3) Дополнительный код числа, имеет такое же назначение, как и обратный код числа. Формируется по следующим правилам: положительные числа в дополнительном коде выглядят также как и в обратном и в прямом коде, т.е. не изменяются. Отрицательные числа кодируются следующим образом: к обратному коду отрицательного числа (к младшему разряду) добавляется 1, по правилу двоичной арифметики.
Пример перевода
x1=10101-[x1]доп=010101
x2=-11101-[x2]обр=100010+1-[x2]доп=100011
x3=0,101-[x3]доп=0,101
x4=-0,111-[x4]обр=1,000+1-[x4]доп=1,001
Для выявления ошибок при выполнении арифметических операций используются также модифицированные коды: модифицированный прямой; модифицированный обратный; модифицированный дополнительный, для которых под код знака числа отводится два разряда, т.е. “+”=00; ”-”=11. Если в результате выполнения операции в знаковом разряде появляется комбинация 10 или 01 то для машины это признак ошибки, если 00 или 11 то результат верный.
СЛОЖЕНИЕ ДЕЛЕНИЕ УМНОЖЕНИЕ ЧИСЕЛ В ЛЮБОЙ СИСТЕМЕ СЧИСЛЕНИЯ ОНЛАЙН
Этот калькулятор умеет осуществлять простейшие арифметические операции над числами. Причем числа могут быть введены в разных системах счисления.
Вам необходимо определиться сколько чисел вам необходимо посчитать и выбрать это количество в графе количество чисел.
Далее Вам необходимо ввести каждое число и выбрать его систему счисления. Если в указанном списке Вы не нашли нужной СС, то выберите пункт другая и введите числом основание вашей системы счисления.
После ввода всех чисел и выбора арифметических операций нажмите кнопку рассчитать.
Дата и время данного расчета 20.09.2021 13:03 МСК
Сложение 9A+75 в шестнадцатеричной
Все числа находятся в шестнадцатеричной системе счисления. Поэтому все расчеты будем выполнять в ней.
. | ||
+ | 9 | A |
7 | 5 | |
1 | 0 | F |
Получилось: 9A16+7516 = 10F16
Вы пожелали видеть ответ в десятичной системе счисления
Переведем его вот так:
10F16 = 1∙16 2 +0∙16 1 +15∙16 0 = 256+0+15 = 27110
Постоянная ссылка на результат этого расчета
Вы можете отблагодарить нас:
Этот калькулятор умеет осуществлять простейшие арифметические операции над числами. Причем числа могут быть введены в разных системах счисления.
Теперь также введем число 11011 в двоичной системе счисления:
Далее выбираем в поле «операция» вычитание и указываем что расчет должен быть выполнен в десятичной СС. Если мы хотим чтобы результат расчета был в двоичной СС, то указываем это как на скриншоте:
Теперь нажимаем копку «Рассчитать» и смотрим результат:
Если хотите посмотреть ход решения, то нажмите ссылку «Показать как оно получилось»
Если Вам необходимо рассчитать более двух чисел то выберите нужное количество в пункте «Количество чисел» Максимум 7 чисел.
При расчете сначала выполняются операции деления и умножения затем сложения и вычитания.
Вы можете выполнять операции расчета деления столбиком.
Двоичный калькулятор онлайн
Данный калькулятор может производить следующие действия над двоичными числами:
Сложение двоичных чисел
Сложение двух двоичных чисел производится столбиком поразрядно. Начиная с младшего разряда (справа на лево), как и при сложении столбиком десятичных чисел. Но так как цифр всего две (0 и 1), их сложение происходит по следующим правилам:
Пример
Для примера сложим 1011 и 101:
+ | 1 | 0 | 1 | 1 |
1 | 0 | 1 | ||
1 | 0 | 0 | 0 | 0 |
Вычитание двоичных чисел
Вычитание двоичных чисел производится аналогично сложению – столбиком, но по следующим правилам:
Пример
Для примера вычтем из числа 1011 число 101:
− | 1 | 0 | 1 | 1 |
1 | 0 | 1 | ||
1 | 1 | 0 |
Умножение двоичных чисел
Умножение двоичных чисел производится в столбик аналогично умножению в десятичной системе, но по следующим правилам:
Пример
Для примера перемножим числа 1011 и 101:
× | 1 | 0 | 1 | 1 | |
1 | 0 | 1 | |||
+ | 1 | 0 | 1 | 1 | |
0 | 0 | 0 | 0 | ||
1 | 0 | 1 | 1 | ||
1 | 1 | 0 | 1 | 1 | 1 |
Деление двоичных чисел
Внешне деление двоичных чисел похоже на деление десятичных чисел, но тут есть свои нюансы: такое деление производится вычитанием делителя со сдвигом вправо, если остаток больше нуля. Чтобы понять этот процесс рассмотрим пример: