Шестнадцатеричный калькулятор
Сложение, вычитание, умножение, деление и преобразование шестнадцатеричных чисел в десятичные, двоичные и восьмеричные.
Логика вычислений
Калькулятор работает в двух режимах: «Hex-калькулятор» — выполняет арифметическую операцию над двумя числами, заданными в произвольных системах счисления (двоичной, восьмеричной, десятичной или шестнадцатеричной), и «Hex-конвертер» — переводит одно шестнадцатеричное число в остальные три системы. В обоих режимах внутреннее вычисление идёт над целыми числами; результат выводится сразу в четырёх системах счисления.
Перевод числа из произвольной системы в целое
Любое введённое число с основанием b представляется как сумма степеней основания, где каждой цифре соответствует её позиционный вес:
N = d_(k−1) × b^(k−1) + d_(k−2) × b^(k−2) + … + d_1 × b + d_0
где:
- N — целое значение числа в десятичном представлении;
- b — основание исходной системы счисления (2, 8, 10 или 16);
- k — количество цифр в записи числа;
- d_i — цифра числа на позиции i, причём 0 ≤ d_i < b (для шестнадцатеричной системы буквы a–f соответствуют значениям 10–15).
Hex-калькулятор
Оба введённых числа переводятся в общее целочисленное представление по формуле выше, затем над ними выполняется выбранная операция:
R = N₁ + N₂ R = N₁ − N₂ R = N₁ × N₂ R = ⌊N₁ / N₂⌋
где:
- N₁, N₂ — первое и второе число, приведённые к целому виду;
- R — результат операции, целое число;
- ⌊…⌋ — деление выполняется как целочисленное (дробная часть отбрасывается).
Hex-конвертер
Введённое шестнадцатеричное число сразу принимается за исходное целое:
R = N (b = 16)
где:
- R — исходное число, которое будет выведено во всех четырёх системах счисления.
Вывод результата в четырёх системах
Полученное целое R представляется в каждой целевой системе с основанием b′ по обратному алгоритму — последовательным делением с остатком:
d_0 = R mod b′ R_1 = ⌊R / b′⌋
d_1 = R_1 mod b′ R_2 = ⌊R_1 / b′⌋ … до R_k = 0
где:
- b′ — основание целевой системы (2, 8, 10 или 16);
- d_0, d_1, …, d_(k−1) — цифры результата от младшей к старшей;
- mod — остаток от деления, ⌊…⌋ — целая часть от деления.
Записанные в обратном порядке цифры d_(k−1) … d_1 d_0 и образуют итоговое представление числа в соответствующей системе. Для шестнадцатеричной системы значения цифр 10–15 заменяются буквами a–f.
Соответствие систем счисления
| Система | Основание b | Допустимые цифры |
|---|---|---|
| Двоичная | 2 | 0, 1 |
| Восьмеричная | 8 | 0–7 |
| Десятичная | 10 | 0–9 |
| Шестнадцатеричная | 16 | 0–9, a–f |
