Калькулятор систем счисления

Калькулятор переводит целое число из десятичной системы счисления в двоичную и восьмеричную и обратно. Пригодится школьникам, студентам и программистам для проверки перевода.

Данные для расчёта

Целое от 0 до 65535. Дробная часть отбрасывается, выход за диапазон - отказ

Только цифры 0 и 1, не длиннее 16 разрядов - например 11001000. Дробная часть отбрасывается

Только цифры 0-7, от 0 до 177777 (= 65535) - например 310. Дробная часть отбрасывается

Результат

Введите данные и нажмите "Рассчитать".

-

Заполните поля выше

В двоичной системе
-
В восьмеричной системе
-
Двоичное число в десятичной системе
-
Восьмеричное число в десятичной системе
-

Часть значений появится, когда заполните остальные поля.

Заказать калькулятор под ваш сайт

Описание

Перевод между системами счисления нужен на уроках информатики, при работе с битовыми масками и правами доступа (восьмеричная запись), при чтении двоичных данных и проверке ручного расчёта.

Введите десятичное число в поле "Десятичное число" - калькулятор покажет его в двоичной и восьмеричной системе. Чтобы перевести обратно, введите двоичную запись в поле "Двоичное число" или восьмеричную - в поле "Восьмеричное число". Поля работают независимо: можно заполнить одно или все три.

Ограничения ввода:

  • десятичное число - целое от 0 до 65535; дробная часть отбрасывается, и то, что реально переведено, видно в поле "Учтённое целое число";
  • двоичное число - только цифры 0 и 1, не длиннее 16 разрядов;
  • восьмеричное число - только цифры 0-7, не длиннее 6 разрядов.

Двоичная и восьмеричная записи вводятся и показываются как обычные числа из цифр: 11001000 - это восемь двоичных разрядов, а не "одиннадцать миллионов". Поэтому ведущие нули не сохраняются: 00101 будет показано как 101.

Если в двоичной записи встретится цифра больше 1 (или в восьмеричной - 8 или 9), либо число выйдет за диапазон, калькулятор не будет считать молча, а откажет - проверьте ввод. Шестнадцатеричная система не поддерживается.

Как считается

Используется определение позиционной системы счисления с основанием (здесь основание 2 или 8):

цифра разряда = целая часть (Число / Основание в степени номера разряда), остаток от деления на Основание
значение записи = сумма (цифра разряда * Основание в степени номера разряда)

Из десятичной в двоичную: у десятичного числа (после отбрасывания дробной части) вычисляются 16 двоичных разрядов - с 0-го (2^0 = 1) по 15-й (2^15 = 32768). Каждая цифра ставится на свой десятичный разряд (* 10 в степени номера разряда), чтобы результат читался как привычная запись, например 11001000.

Из десятичной в восьмеричную: так же вычисляются 6 восьмеричных разрядов (основание 8, степени от 8^0 = 1 до 8^5 = 32768).

Из двоичной и восьмеричной в десятичную: введённая запись раскладывается на цифры по десятичным разрядам, и значение = сумма (цифра * 2 в степени номера разряда) или сумма (цифра * 8 в степени номера разряда).

Проверки:

  • десятичное число должно быть не меньше 0 и меньше 65536, иначе - отказ;
  • двоичная запись - от 0 до 1111111111111111 (16 разрядов), восьмеричная - от 0 до 177777 (это 65535, как и у остальных систем); больше калькулятор не примет;
  • каждая цифра двоичной записи должна быть 0 или 1, восьмеричной - от 0 до 7; хотя бы одна неверная цифра даёт отказ.

Целая часть при разборе разрядов берётся как "число минус остаток от деления на 1", без округления до значащих цифр, - так перевод точен на всём диапазоне 0-65535.

Все результаты - целые числа.

Пример: 200 = 128 + 64 + 8 = 2^7 + 2^6 + 2^3 -> 110010002; 200 = 3 * 64 + 1 * 8 + 0 -> 3108. Обратно: 110010002 = 128 + 64 + 8 = 200, 3108 = 3 * 64 + 1 * 8 = 200.

Упрощения: только десятичная, двоичная и восьмеричная системы и только целые неотрицательные числа. Верхняя граница 65535 - это 16 двоичных разрядов; более длинная двоичная запись не помещается в числовое поле без потери разрядов.

Пример расчёта

Десятичное число
200
Двоичное число
11 001 000
Восьмеричное число
310
Целая часть десятичного числа (после проверки диапазона)
200
Двоичная запись: разряды выставлены по десятичным позициям
11 001 000
Восьмеричная запись: разряды выставлены по десятичным позициям
310
Десятичное значение двоичной записи
200
Десятичное значение восьмеричной записи
200

Числа взяты из контрольного примера калькулятора - на них он проверяется тестами.

Частые вопросы

Как перевести число из десятичной в двоичную систему?

Разложите число на степени двойки: 200 = 128 + 64 + 8 = 2^7 + 2^6 + 2^3, поэтому единицы стоят в 7-м, 6-м и 3-м разрядах - 11001000. Калькулятор делает это автоматически.

Как перевести двоичное число в десятичное?

Умножьте каждую цифру на 2 в степени номера её разряда (справа, начиная с нуля) и сложите: 10102 = 8 + 2 = 10.

Почему нельзя ввести число больше 65535?

65535 - это 16 единиц в двоичной записи. Семнадцатиразрядная двоичная запись в числовом поле уже не помещается без потери младших разрядов, поэтому калькулятор отказывает, а не выдаёт неверный результат.

Почему калькулятор не принимает 1012 как двоичное число?

В двоичной системе есть только цифры 0 и 1. Цифра 2 означает ошибку ввода, и калькулятор сообщает об этом вместо молчаливого неверного пересчёта.

Есть ли перевод в шестнадцатеричную систему?

Нет. Калькулятор работает только с десятичной, двоичной и восьмеричной системами.

Что будет, если ввести дробное число?

Дробная часть отбрасывается - и у десятичного, и у двоичного, и у восьмеричного числа. Какое целое десятичное число реально переведено, видно в поле "Учтённое целое число".

Источники

Комментарии (0)

Комментариев пока нет.

Оставить комментарий

Комментарий появится после проверки