Калькулятор перевода из десятичной в шестнадцатеричную
Переводит десятичное число (по основанию 10) в шестнадцатеричное (по основанию 16).
Логика вычислений
Калькулятор переводит целое неотрицательное десятичное число (по основанию 10) в шестнадцатеричное представление (по основанию 16). Перевод выполняется разложением числа по степеням основания 16: число последовательно делится на 16, а остатки от деления, записанные снизу вверх, дают цифры результата.
D = h_k × 16ᵏ + h_(k−1) × 16ᵏ⁻¹ + … + h_1 × 16 + h_0
где:
- D — исходное десятичное число;
- h_0 … h_k — шестнадцатеричные цифры результата (от младшей к старшей);
- k — номер старшего разряда.
Каждая шестнадцатеричная цифра принимает значение от 0 до 15, причём значения от 10 до 15 записываются буквами:
10 → A 11 → B 12 → C 13 → D 14 → E 15 → F
Практически цифры получают повторяющимся делением с остатком: остаток от деления на 16 даёт очередную (младшую) цифру, а целая часть передаётся в следующий шаг, пока она не станет равной нулю.
h_i = D_i mod 16 D_(i+1) = ⌊D_i / 16⌋
где:
- D_i — значение, остающееся на i-м шаге деления (D_0 = D);
- h_i — цифра i-го разряда (остаток от деления на 16);
- ⌊ ⌋ — целая часть (отбрасывание дробной части при делении);
- mod — остаток от деления.
Дополнительно результат выводится с префиксом 0x, который принято ставить перед шестнадцатеричными числами:
H_0x = «0x» + H
где:
- H — полученное шестнадцатеричное число;
- H_0x — то же число с префиксом 0x.
Примеры расчётов
| Десятичное число D | Деление с остатком (снизу вверх) | Цифры результата | Результат (с префиксом) | Комментарий |
|---|---|---|---|---|
| 0 | 0 ÷ 16 = 0, остаток 0 | 0 | 0x0 | Граничный случай: ноль остаётся нулём. |
| 10 | 10 ÷ 16 = 0, остаток 10 → A | A | 0xA | Остаток 10 записывается буквой A. |
| 16 | 16 ÷ 16 = 1, остаток 0; 1 ÷ 16 = 0, остаток 1 | 1, 0 | 0x10 | Основание системы: первый двузначный результат. |
| 255 | 255 ÷ 16 = 15, остаток 15 → F; 15 ÷ 16 = 0, остаток 15 → F | F, F | 0xFF | Максимум одного байта (15×16 + 15 = 255). |
| 3000 | 3000 ÷ 16 = 187, ост. 8; 187 ÷ 16 = 11 → B, ост. 11 → B; 11 ÷ 16 = 0, ост. 11 → B | B, B, 8 | 0xBB8 | Проверка: 11×256 + 11×16 + 8 = 3000. |
| 4096 | 4096 ÷ 16 = 256, ост. 0; 256 ÷ 16 = 16, ост. 0; 16 ÷ 16 = 1, ост. 0; 1 ÷ 16 = 0, ост. 1 | 1, 0, 0, 0 | 0x1000 | Круглая степень: 4096 = 16³. |
| 65535 | четыре деления, каждый остаток 15 → F | F, F, F, F | 0xFFFF | Максимум двух байт (16⁴ − 1 = 65535). |
