home » Перевод чисел из десятичной системы в шестнадцатиричную
Двоичная система счисления — позиционная система счисления с основанием 2.
Шестнадцатеричная система счисления — позиционная система счисления по целочисленному основанию 16.
| Десятичное число (положительное) | Шестнадцатеричное число |
|---|---|
| 0 | 0 |
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 4 | 4 |
| 5 | 5 |
| 6 | 6 |
| 7 | 7 |
| 8 | 8 |
| 9 | 9 |
| 10 | A |
| 11 | B |
| 12 | C |
| 13 | D |
| 14 | E |
| 15 | F |
| 16 | 10 |
| 32 | 20 |
| 64 | 40 |
| 128 | 80 |
| 256 | 100 |
Перевод из шестнадцатеричной системы счисления в десятичную
Вы можете сохранять ваши расчеты и они будут отображаться здесь.
Для сохранения расчета воспользуйтесь кнопкой под формой калькулятора.
Сохранить расчет
Сохраненный расчет будет доступен только в текущем браузере.
Вы можете сохранить всего не более 5 расчетов.
Для того, чтобы сохранять больше расчетов и иметь доступ к ним с любого устройства, зарегистрируйтесь.
Поделиться
Поделиться расчетом
Вы делитесь ссылкой на ваш сохраненный расчет. Изменения, внесенные в расчет, будут автоматически доступны по ссылке.
Вы делитесь ссылкой на статичный расчет. При изменении вами расчета, изменения не будут транслироваться по ссылке.
Как перевести
Преобразовать число из шестнадцатеричной системы счисления в десятичную можно следующим образом:
Каждый разряд числа необходимо умножить на 16 n , где n — номер разряда, начиная с 0. Затем суммировать полученные значения.
abc16 = (a×16 2 + b×16 1 + c×16 0 )10
5A16 = (5*16 1 + 10*16 0 )10 = 9010
Смотрите также
- Перевод из двоичной в десятичную
- Перевод из двоичной в восьмеричную
- Перевод из двоичной в шестнадцатеричную
- Перевод из десятичной в двоичную
- Перевод из десятичной в восьмеричную
- Перевод из десятичной в шестнадцатеричную
- Перевод из восьмеричной в двоичную
- Перевод из восьмеричной в десятичную
- Перевод из шестнадцатеричной в двоичную
Перевод чисел в двоичную, шестнадцатеричную, десятичную, восьмеричную системы счисления
Можно вводить как целые числа, например 34 , так и дробные, например, 637.333 . Для дробных чисел указывается точность перевода после запятой.
- Операции с двоичными числами (сложение и вычитание)

Способы представления чисел
Двоичные (binary) числа – каждая цифра означает значение одного бита (0 или 1), старший бит всегда пишется слева, после числа ставится буква «b». Для удобства восприятия тетрады могут быть разделены пробелами. Например, 1010 0101b.
Шестнадцатеричные (hexadecimal) числа – каждая тетрада представляется одним символом 0. 9, А, В, . F. Обозначаться такое представление может по-разному, здесь используется только символ «h» после последней шестнадцатеричной цифры. Например, A5h. В текстах программ это же число может обозначаться и как 0хА5, и как 0A5h, в зависимости от синтаксиса языка программирования. Незначащий ноль (0) добавляется слева от старшей шестнадцатеричной цифры, изображаемой буквой, чтобы различать числа и символические имена.
Десятичные (decimal) числа – каждый байт (слово, двойное слово) представляется обычным числом, а признак десятичного представления (букву «d») обычно опускают. Байт из предыдущих примеров имеет десятичное значение 165. В отличие от двоичной и шестнадцатеричной формы записи, по десятичной трудно в уме определить значение каждого бита, что иногда приходится делать.
Восьмеричные (octal) числа – каждая тройка бит (разделение начинается с младшего) записывается в виде цифры 0–7, в конце ставится признак «о». То же самое число будет записано как 245о. Восьмеричная система неудобна тем, что байт невозможно разделить поровну. см. также Представление чисел в ЭВМ
Алгоритм перевода чисел из одной системы счисления в другую
Перевод целых десятичных чисел в любую другую системы счисления осуществляется делением числа на основание новой системы счисления до тех пор, пока в остатке не останется число меньшее основания новой системы счисления. Новое число записывается в виде остатков деления, начиная с последнего.
Перевод правильной десятичной дроби в другую ПСС осуществляется умножением только дробной части числа на основание новой системы счисления до тех пор пока в дробной части не останутся все нули или пока не будет достигнута заданная точность перевода. В результате выполнения каждой операции умножения формируется одна цифра нового числа начиная со старшего.
Перевод неправильной дроби осуществляется по 1 и 2 правилу. Целую и дробную часть записывают вместе, отделяя запятой. Пример №1 .


Перевод из 2 в 8 в 16 системы счисления.
Эти системы кратны двум, следовательно, перевод осуществляется с использованием таблицы соответствия (см. ниже). Для перевода числа из двоичной системы счисления в восьмиричную (шестнадцатиричную) необходимо от запятой вправо и влево разбить двоичное число на группы по три (четыре – для шестнадцатиричной) разряда, дополняя при необходимости нулями крайние группы. Каждую группу заменяют соответствующей восьмиричной или шестнадцатиричной цифрой. Пример №2 . 1010111010,1011 = 1.010.111.010,101.1 = 1272,548
здесь 001=1; 010=2; 111=7; 010=2; 101=5; 100=4 При переводе в шестнадцатеричную систему необходимо делить число на части, по четыре цифры, соблюдая те же правила.
Пример №3 . 1010111010,1011 = 10.1011.1010,1011 = 2B12,13HEX
здесь 0010=2; 1011=B; 1010=12; 1011=13 Перевод чисел из 2 , 8 и 16 в десятичную систему исчисления производят путем разбивания числа на отдельные и умножения его на основание системы (из которой переводится число) возведенное в степень соответствующую его порядковому номеру в переводимом числе. При этом числа нумеруются влево от запятой (первое число имеет номер 0) с возрастанием, а в правую сторону с убыванием (т.е. с отрицательным знаком). Полученные результаты складываются. Пример №4 .
Пример перевода из двоичной в десятичную систему счисления.
1010010,1012 = 1·26+0·25+1·24+0·23+0·22+1·21+0·20 + 1·2-1+0·2-2+1·2-3 =
= 64+0+16+0+0+2+0+0.5+0+0.125 = 82.62510
Пример перевода из восьмеричной в десятичную систему счисления.
108.58 = 1*·82+0·81+8·80 + 5·8-1 = 64+0+8+0.625 = 72.62510
Пример перевода из шестнадцатеричной в десятичную систему счисления.
108.516 = 1·162+0·161+8·160 + 5·16-1 = 256+0+8+0.3125 = 264.312510
- Из десятичной системы счисления:
- разделить число на основание переводимой системы счисления;
- найти остаток от деления целой части числа;
- записать все остатки от деления в обратном порядке;
- Из двоичной системы счисления
- Для перевода в десятичную систему счисления необходимо найти сумму произведений основания 2 на соответствующую степень разряда;
- Для перевода числа в восьмеричную необходимо разбить число на триады.
Например, 1000110 = 1 000 110 = 1068 - Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить число на группы по 4 разряда.
Например, 1000110 = 100 0110 = 4616
| Двоичная СС | Шестнадцатеричная СС |
| 0000 | 0 |
| 0001 | 1 |
| 0010 | 2 |
| 0011 | 3 |
| 0100 | 4 |
| 0101 | 5 |
| 0110 | 6 |
| 0111 | 7 |
| 1000 | 8 |
| 1001 | 9 |
| 1010 | A |
| 1011 | B |
| 1100 | C |
| 1101 | D |
| 1110 | E |
| 1111 | F |
Таблица для перевода в восьмеричную систему счисления
| Двоичная СС | Восьмеричная СС |
| 000 | 0 |
| 001 | 1 |
| 010 | 2 |
| 011 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
Пример №5 . Перевести число 100,12 из десятичной системы счисления в восьмеричную систему счисления и обратно. Пояснить причины расхождений.
Решение.
1 Этап. Перевод числа из десятичной системы счисления в восьмеричную систему счисления.
Остаток от деления записываем в обратном порядке. Получаем число в 8-ой системе счисления: 144
100 = 1448
Для перевода дробной части числа последовательно умножаем дробную часть на основание 8. В результате каждый раз записываем целую часть произведения.
0.12*8 = 0.96 (целая часть 0 )
0.96*8 = 7.68 (целая часть 7 )
0.68*8 = 5.44 (целая часть 5 )
0.44*8 = 3.52 (целая часть 3 )
Получаем число в 8-ой системе счисления: 0753.
0.12 = 0.7538
2 Этап. Перевод числа из десятичной системы счисления в восьмеричную систему счисления.
Обратный перевод из восьмеричной системы счислений в десятичную.
Для перевода целой части необходимо умножить разряд числа на соответствующую ему степень разряда.
144 = 8 2 *1 + 8 1 *4 + 8 0 *4 = 64 + 32 + 4 = 100
Для перевода дробной части необходимо разделить разряд числа на соответствующую ему степень разряда
0753 = 8 -1 *0 + 8 -2 *7 + 8 -3 *5 + 8 -4 *3 = 0.119873046875 = 0.1199
144,07538 = 100,119910 ≈ 100,1210
Разница в 0,0001 (100,12 — 100,1199) объясняется погрешностью округлений при переводе в восьмеричную систему счислений. Эту погрешность можно уменьшить, если взять большее число разрядов (например, не 4, а 8).
Перевод из шестнадцатеричной системы в десятичную java
Я не понимаю, как в данном примере переводится число. То-есть, не понимаю последнего шага. Из строки мы берем символ, потом вычисляем его индекс, соответственно изменяем буквы из 16-системы в числа, а потом. Как потом ? Все работает правильно, я проверял (компилировал), но если на бумажке сижу и считаю, вообще не выходит у меня, как программа приходит к верному решению. Может кто немножко пошагово разложить как верно работает посл. строка при вычислении val переменной.
public static int hex2decimal(String s) < String digits = "0123456789ABCDEF"; s = s.toUpperCase(); int val = 0; for (int i = 0; i < s.length(); i++) < char c = s.charAt(i); int d = digits.indexOf(c); val = 16*val + d; >return val; >
Отслеживать
задан 9 июл 2016 в 13:09
1,649 12 12 серебряных знаков 23 23 бронзовых знака
Вам интересен этот алгоритм с точки зрения прикладных знаний? В Java есть более гуманные способы конвертации между разными системами счисления.
9 июл 2016 в 13:26
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Число в шестнадцатеричной системе, например A1B , переводится в десятичную по формуле A*16^2 + 1*16 + B , где A=10 , а B=11 . Результат 2587 . Однако вместо того, чтобы основание системы счисления 16 возводить в степень на каждом шаге, можно применить метод, сродни схеме Горнера для вычисления значений полиномов в точке. То есть (A*16 + 1)*16 + B . Таким образом, на нулевой итерации цикла будет вычислено val=0*16+A=10 , затем val=10*16+1=161 , затем 161*16+11=2587 .
Собственно, на пальцах идея такая: добавление очередной цифры в конец строки, это эквивалентно умножению на 16 и прибавлению этой цифры к сумме. Аналогично ведь и в десятичной системе счисление: добавление цифры означает домножить на 10 и прибавить цифру: 123 = 12*10 + 3
Отслеживать
ответ дан 9 июл 2016 в 13:21
3,958 1 1 золотой знак 11 11 серебряных знаков 27 27 бронзовых знаков
-
Важное на Мете
Связанные
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.14.6266