Перейти к основному содержанию
CalcMax

Конвертер из 16-ричной в десятичную

Результат

10 815

Десятичное

Разрядные значения
2×4096 + 10×256 + 3×16 + 15

Конвертер из 16-ричной в десятичную переписывает шестнадцатеричное число в десятичную запись, и в отличие от перевода в двоичную это настоящая арифметика. Любое шестнадцатеричное число читается как сумма произведений: каждый знак умножается на степень шестнадцати, которую стоит его разряд, а счёт разрядов начинается с нуля справа. У 2A3F в последней позиции стоит F, значит F весит 15; в следующей позиции стоит 3, и это 3×16; дальше A, то есть 10×256; а впереди 2, то есть 2×4 096. Сложив, получаем 10 815. Ошибаются здесь именно на буквах, и двумя способами. Во-первых, A должна превратиться в 10, а F — в 15 ещё до всякого умножения: если прочитать A как 1, ответ будет выглядеть правдоподобно и будет неверным. Во-вторых, значение буквы умножается на вес разряда, поэтому F в последней позиции — это 15, а F на разряд левее — это 240: буква не количество, а коэффициент. Вторая половина этой страницы — степени шестнадцати, и у них есть форма, которую стоит знать: 1, 16, 256, 4 096, 65 536 и дальше, каждое в шестнадцать раз больше предыдущего. Читать шестнадцатеричное число по этому списку справа налево быстрее, чем считать степени на месте. А поскольку шестнадцать — степень двойки, это ещё и степени двойки, взятые по четыре: 16 — это 2⁴, 256 — 2⁸, 65 536 — 2¹⁶; поэтому каждый разряд, в котором четыре бита, несёт одну степень шестнадцати. Панель печатает рядом с ответом всю сумму, так что результат можно проверить почленно: 2×4 096 + 10×256 + 3×16 + 15 даёт 10 815, и ошибка в любом отдельном знаке проявится как сумма, которая не возвращается к ожидаемому числу. Две строки панели устроены по-разному, и это стоит знать. Десятичная запись — это число, оно прошло локализацию, и разряды в нём разделены неразрывным пробелом: 10 815. А сумма по разрядам — машинная строка, и в ней тот же множитель напечатан без разделителя: 4096.

Степени шестнадцати от самого правого разряда до самого широкого, который может занять допустимый ввод

РазрядСтепеньЗначение
1316¹³4503599627370496
1216¹²281474976710656
1116¹¹17592186044416
1016¹⁰1099511627776
916⁹68719476736
816⁸4294967296
716⁷268435456
616⁶16777216
516⁵1048576
416⁴65536
316³4096
216²256
116¹16
016⁰1

Четырнадцать строк, от 16⁰ до 16¹³, и длина здесь не произвольна: четырнадцать знаков — самая широкая запись, которую принимает это семейство страниц, поэтому таблица покрывает любой разряд, который может понадобиться ответу, и на этом останавливается. Читать её сверху вниз — значит читать разряды ответа справа налево: последняя строка это самый правый знак, а первая — самый левый. Средний столбец — разряд, записанный степенью, именно на него умножает сумма в панели выше; третий столбец — та же степень, вычисленная, и именно на неё умножают на практике. Эти значения смыкаются со страницами про двоичную систему: 16 — это 2⁴, 256 — 2⁸, а 65 536 — 2¹⁶, потому что один шестнадцатеричный знак вмещает четыре бита. Так что та же таблица отвечает, сколько стоит четырёхбитная группа, когда её читают как число, а не как биты. Она закреплена и не следует за тем, что вы ввели.

Формула

2A3F = 2×16³ + 10×16² + 3×16¹ + 15×16⁰ = 2×4 096 + 10×256 + 3×16 + 15 = 10 815

2A3F
Шестнадцатеричное число для перевода. Регистр букв не важен, поэтому 2a3f и 2A3F — одно и то же значение; ведущий ноль ничего не меняет, а ведущий минус даёт отрицательный результат
16ⁿ
Степень шестнадцати, приписанная разряду, со счётом от нуля у самого правого знака. Самый правый весит 16⁰, то есть 1, следующий — 16¹, то есть 16, и каждый шаг влево снова умножает на шестнадцать
2, 10, 3, 15
Знаки, прочитанные как значения, с уже подставленными буквами: A становится 10, а F — 15 до всякого умножения. Прочитать A как 1 — ошибка, ради предотвращения которой эта строка и существует, и самый частый способ ошибиться в этом переводе
2×4 096
Одно слагаемое суммы: значение знака, умноженное на степень его разряда. Свой вклад даёт каждый знак, включая нулевые, хотя нулевое слагаемое ничего не меняет и в напечатанную сумму просто не попадает
= 10 815
Итог слагаемых. Это десятичное число, а не строка знаков в каком-то другом основании, поэтому ответ этой страницы можно сразу использовать в дальнейших вычислениях
14 знаков
Самая широкая допустимая запись ввода, то есть 1FFFFFFFFFFFFF. Четырнадцать знаков — та длина, на которой значение достигает 9 007 199 254 740 991, а за ней машина уже не удерживает соседние целые числа порознь, поэтому более длинный ввод отклоняется, а не переводится

Читать шестнадцатеричное значение как десятичное приходится всякий раз, когда число, записанное для машины, надо сравнить с числом, записанным для человека. У кода цвета три канала по два знака, и понимать, что FF — это 255, а 80 — это 128, означает разницу между подгонкой оттенка на глаз и подгонкой по числу. С размерами та же история: 400 в шестнадцатеричной записи — это 1024, привычный размер страницы, а карта памяти, напечатанная как 0x100000, — это 1 048 576 байт для всякого, кому надо добавить к ней второй участок. Кто сверяет контрольную сумму, сравнивает префикс хеша или переводит маску из технической документации, делает этот перевод, и кто читает серийный номер или идентификатор, оказавшийся шестнадцатеричным, — тоже. В учёбе это задание звучит как перевод из шестнадцатеричной в десятичную, обычно с выписанными степенями, и это ровно та сумма, которую печатает страница: одно слагаемое на знак, с уже подставленными буквами. Это же и тот перевод, к которому стоит прибегнуть, когда шестнадцатеричный ответ другого инструмента надо проверить на здравый смысл: десятичный итог — то единственное число, с которым можно сравнить все остальные.

Разобранные примеры

  1. Чтение 2A3F

    1. Выписываем степени шестнадцати под четырьмя знаками, справа: 1, 16, 256, 4 096
    2. Заменяем буквы их значениями: A — это 10, F — это 15
    3. Умножаем: 2×4 096 — это 8 192, 10×256 — 2 560, 3×16 — 48, 15×1 — 15
    4. Складываем четыре слагаемых: 8 192 + 2 560 + 48 + 15 = 10 815

    Пример по умолчанию, и в нём обе буквы требуют перевода. A — это не 1, а F — не 5: если прочитать строку так, будто буквы это цифры, ответ получится около двух тысяч, и это достаточно далеко от истины, чтобы броситься в глаза. Ошибка тоньше — буква, переведённая правильно, но умноженная не на ту степень.

  2. Целый байт — FF

    1. Два знака, поэтому разряды весят 16 и 1
    2. F — это 15, поэтому левый знак даёт 15×16 = 240
    3. Правый знак даёт 15×1 = 15
    4. 240 + 15 = 255

    Два знака и самое большое значение, которое они вмещают, — поэтому FF это 255, а не 256: диапазон начинается с 00. Эту пару стоит помнить наизусть, она встречается в значениях цвета, в байтовых полях и в любой шестнадцатеричной строке ровно из двух знаков.

  3. Чтение B2

    1. B — это 11, поэтому левый знак даёт 11×16 = 176
    2. Правый знак даёт 2
    3. 176 + 2 = 178

    B стоит на единицу выше A, поэтому 11×16, а не 10×16: разница между B как 11 и B как 10 — это шестнадцать, то есть целый шестнадцатеричный разряд. Это то же значение, которое страницы про двоичную систему используют как пример восьми бит, и в двоичной записи оно выглядит как 10110010.

  4. Самый большой ввод — 1FFFFFFFFFFFFF

    1. Четырнадцать знаков, поэтому разряды идут от 16¹³ вниз до 16⁰
    2. Ведущая 1 весит 16¹³, то есть 4 503 599 627 370 496
    3. Каждый из тринадцати знаков F — это 15, умноженное на степень его собственного разряда
    4. Сложение четырнадцати слагаемых даёт 9 007 199 254 740 991

    Четырнадцать слагаемых — самая широкая сумма, до которой эта страница доходит, и это тот же потолок, в который упираются десятичные страницы на 9 007 199 254 740 991, а страницы про двоичную систему — на пятидесяти трёх цифрах. В методе при таком размере ничего не меняется: это то же умножение со сложением, повторённое четырнадцать раз, и это и есть полезное, что отсюда стоит вынести.

Ограничения

На входе здесь шестнадцатеричная строка, а не десятичная, поэтому десятичной запятой, которую надо было бы отклонять, нет: отклоняются знаки за пределами 0–9 и A–F. Ввод может состоять не более чем из четырнадцати знаков, то есть из 1FFFFFFFFFFFFF, и всё, что длиннее, отклоняется с сообщением, а не усекается. Ведущие нули принимаются и ничего не меняют, а ведущий минус даёт отрицательный десятичный результат: сумма считается по знакам, а знак применяется к итогу. Регистр ввода значения не имеет, но сумма по разрядам всегда печатается прописными буквами. Таблица ниже перечисляет степени шестнадцати от 16⁰ до 16¹³ и закреплена, поэтому за тем, что вы ввели, она не следует; она нужна, чтобы можно было посмотреть вес любого разряда. Обратный перевод, из десятичной в шестнадцатеричную, — отдельная страница, и никакой арифметики над результатом, кроме напечатанной суммы, здесь нет. Две строки панели устроены по-разному. Десятичный ответ — это число, и разряды в нём разделены неразрывным пробелом: панель показывает 10 815, а не 10815. Если это число понадобится ввести в поле другой страницы, например на странице перевода из десятичной в шестнадцатеричную, набирайте его без разделителей. Сумма по разрядам, наоборот, машинная строка, и разделителей в ней нет вовсе: 2×4096 + 10×256 + 3×16 + 15.

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

Как перевести шестнадцатеричное число в десятичное вручную?
Выпишите степени шестнадцати под знаками, начиная с 1 справа и умножая на шестнадцать на каждом шаге влево, затем умножьте каждый знак на стоящую под ним степень и сложите результаты. Буквы надо заменить заранее: A — 10, B — 11, C — 12, D — 13, E — 14, F — 15. Для 2A3F это даёт 2×4 096 + 10×256 + 3×16 + 15, то есть 10 815.
Что означают буквы от A до F?
Это значения от десяти до пятнадцати, по порядку: A — 10, B — 11, C — 12, D — 13, E — 14, F — 15. Основанию шестнадцать нужно шестнадцать одиночных знаков, а десятичные цифры дают только десять, поэтому нужны ещё шесть символов, и буквы — принятое соглашение. Каждая буква — коэффициент ровно так же, как цифра, поэтому F весит пятнадцать раз по столько, сколько несёт её разряд: пятнадцать в последней позиции и 240 на позицию левее.
Какое самое большое шестнадцатеричное число здесь можно перевести?
Четырнадцать знаков. Потолок — 1FFFFFFFFFFFFF, и он переводится в 9 007 199 254 740 991, то есть в ту же границу, которую десятичные страницы называют пятьюдесятью тремя двоичными цифрами. Более длинная строка отклоняется с сообщением, а не усекается и не округляется, потому что за этой шириной машина не удерживает соседние целые числа порознь и ответу нельзя было бы доверять.
Почему FF равно 255, а не 256?
Потому что счёт начинается с 00, а не с 01. Два шестнадцатеричных знака дают 256 различных строк, от 00 до FF, поэтому самое большое значение, которое они могут изобразить, — 255, на единицу меньше числа возможностей. Та же ошибка на единицу вылезает и в двоичной записи, где восемь бит идут от 0 до 255, и поэтому максимум байта равен 255 в любом языке, где есть байты.
Перевод в десятичную — это то же самое, что перевод в двоичную?
Нет. Перевод в двоичную — это подстановка, не требующая арифметики: каждый знак становится четырьмя битами, и в этом весь метод. Перевод в десятичную — это взвешенная сумма, потому что разряды весят степени шестнадцати, а не степени двойки: 2A3F это 2×4 096 + 10×256 + 3×16 + 15, и буквы надо превратить в значения до всякого умножения. Двоичный результат той же строки — 10101000111111, и оба ответа — одна и та же величина, записанная двумя способами.
Почему страница печатает степени шестнадцати таблицей?
Потому что степени — это веса, на которые умножается каждое слагаемое суммы, и посмотреть их в таблице быстрее, чем считать на месте. Таблица идёт от 16⁰ до 16¹³ и для этой страницы исчерпывающая: четырнадцать знаков — самая широкая допустимая запись ввода, поэтому ни один допустимый ответ не использует разряд, которого в таблице нет. Читая её рядом с суммой в панели результатов, видно, какой вес принадлежит какому знаку.

Источники

Похожие калькуляторы