Калькулятор систем счисления
Калькулятор переводит целое число из десятичной системы счисления в двоичную и восьмеричную и обратно. Пригодится школьникам, студентам и программистам для проверки перевода.
Результат
Введите данные и нажмите "Рассчитать".
-
Заполните поля выше
- В двоичной системе
- -
- В восьмеричной системе
- -
- Двоичное число в десятичной системе
- -
- Восьмеричное число в десятичной системе
- -
Часть значений появится, когда заполните остальные поля.
Описание
Перевод между системами счисления нужен на уроках информатики, при работе с битовыми масками и правами доступа (восьмеричная запись), при чтении двоичных данных и проверке ручного расчёта.
Введите десятичное число в поле "Десятичное число" - калькулятор покажет его в двоичной и восьмеричной системе. Чтобы перевести обратно, введите двоичную запись в поле "Двоичное число" или восьмеричную - в поле "Восьмеричное число". Поля работают независимо: можно заполнить одно или все три.
Ограничения ввода:
- десятичное число - целое от 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)
Комментариев пока нет.