Преобразовать шестнадцатеричное число в десятичное

Преобразовать шестнадцатеричное число в десятичное

Умение преобразовывать шестнадцатеричные числа может быть полезно не только программистам, но и дизайнерам, ведь триада RRGGBB есть не что иное, как «машинные» компоненты для красного, зелёного и синего соответственно — от 0 до 255 каждое. Конечно, графические редакторы содержат палитры со встроенными преобразователями, а стандартный калькулятор операционной системы умеет справляться с этой задачей, но порой гораздо удобнее самому «накинуть +14» к требуемой компоненте, а не запускать сторонние программы.

Прежде, чем я покажу, как (легко) можно переводить числа из шестнадцатеричной системы и более привычную для нас, необходимы дополнительные мероприятия. Все мы в школе учили таблицу умножения, и можем убедиться, что данный навык остался (хотя некоторые им в повседневной жизни не пользуются). Теперь же потребуется немного углубить знания, выучив её вплоть до 16 × 16 .

И последнее: я убеждён, что рядовому пользователю эти навыки не понадобятся с вероятностью 99.…%. В общем, вы предупреждены .

Таблица умножение от 11 до 16

11 × 2 = 22
11 × 3 = 33
11 × 4 = 44
11 × 5 = 55
11 × 6 = 66
11 × 7 = 77
11 × 8 = 88
11 × 9 = 99
11 × 10 = 110
11 × 11 = 121
11 × 12 = 132
11 × 13 = 143
11 × 14 = 154
11 × 15 = 165
11 × 16 = 176

12

12 × 2 = 24
12 × 3 = 36
12 × 4 = 48
12 × 5 = 60
12 × 6 = 72
12 × 7 = 84
12 × 8 = 96
12 × 9 = 108
12 × 10 = 120
12 × 11 = 132
12 × 12 = 144
12 × 13 = 156
12 × 14 = 168
12 × 15 = 180
12 × 16 = 192

13

13 × 2 = 26
13 × 3 = 39
13 × 4 = 52
13 × 5 = 65
13 × 6 = 78
13 × 7 = 91
13 × 8 = 104
13 × 9 = 117
13 × 10 = 130
13 × 11 = 143
13 × 12 = 156
13 × 13 = 169
13 × 14 = 182
13 × 15 = 195
13 × 16 = 208

14

14 × 2 = 28
14 × 3 = 42
14 × 4 = 56
14 × 5 = 70
14 × 6 = 84
14 × 7 = 98
14 × 8 = 112
14 × 9 = 126
14 × 10 = 140
14 × 11 = 154
14 × 12 = 168
14 × 13 = 182
14 × 14 = 196
14 × 15 = 210
14 × 16 = 224

15

15 × 2 = 30
15 × 3 = 45
15 × 4 = 60
15 × 5 = 75
15 × 6 = 90
15 × 7 = 105
15 × 8 = 120
15 × 9 = 135
15 × 10 = 150
15 × 11 = 165
15 × 12 = 180
15 × 13 = 195
15 × 14 = 210
15 × 15 = 225
15 × 16 = 240

16

16 × 2 = 32
16 × 3 = 48
16 × 4 = 64
16 × 5 = 80
16 × 6 = 96
16 × 7 = 112
16 × 8 = 128
16 × 9 = 144
16 × 10 = 160
16 × 11 = 176
16 × 12 = 192
16 × 13 = 208
16 × 14 = 224
16 × 15 = 240
16 × 16 = 256

Следующим шагом необходимо соотнести десятичные числа от 10 до 15 с шестнадцатеричными цифрами от A до F.

Таблица соответствия шестнадцатеричных цифр

HEX (шестнадцатеричная) DEC (десятичная)
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
A 10
B 11
C 12
D 13
E 14
F 15

А теперь вспомним поразрядное умножение из предыдущей статьи, для цифры 7. Здесь будет лишь поправка на другую систему счисления (не на 10, как там, а на 16).

Читайте также:  Как восстановить пароль в экселе

Обычно в компьютерной литературе, для однозначного указания основания системы счисления, применяется следующая нотация:
— шестнадцатеричное число — 0x100 (256 в десятичной, признак — 0x в начале)
— десятичное число — 100 (наша, человеческая, система счисления)
— восьмеричное число — 0100 (64 в десятичной, признак — ведущий ноль)
— двоичное число — 0b100 (4 в десятичной, признак — 0b в начале)

Преобразование шестнадцатеричного числа в десятичное

Для начала, небольшой рисунок:

Для преобразования требуется каждую цифру числа умножить на «разряд», в котором оно находится. Из курса начальной школы мы помним, что позиции, занимаемые в числовой строке, называются (справа налево) единицы, десятки, сотни и т. д. Здесь почти то же самое, но с поправкой на систему счисления. Каждый следующий разряд — это +1 степень текущей системы счисления. Любое число в степени ноль — это ноль, в степени 1 — самом число, в степени 2 (квадрат) — число, умноженное само на себя и т. д.

Для наглядности привожу пример. Допустим, возьмём шестнадцатеричное число 0x1F8. Нам требуется перевести его в десятичную систему, поэтому запишем (0x — это признак основания!):

1F816 = 116 × 16 2 + F16 × 16 1 + 816 × 16 0 = 1 × 256 + 15 × 16 + 8 × 1 = 256 + 240 + 8 = 504

Обе таблички нам пригодились: благодаря второй мы переводим числа из шестнадцатеричной системы в десятичную, благодаря первой — легко перемножаем «больше» числа.

Небольшое отступление

А знаете ли вы, что у нас сейчас могла бы использоваться двенадцатеричная система счисления, используемая ещё шумерцами? По одной и версий, этому способствовало количество фаланг пальцев руки. Взгляните на рисунок:

Скорее всего, вам сложно это представить. Но, взглянув на это под другим углом, можем убедиться, что выбор был бы очень хорош, ведь 12 делится без остатка на 2, 3, 4, 6 (в то время, как 10 можно разделить лишь на 2 и 5). Естественно, умножения и деления на степень числа 12 были так же просты, как сейчас аналогичные операции для степени числа 10.

Выучив эти таблицы, любой человек легко сможет переводить компьютерные байты в привычные числа. При желании, как следует потренировавшись и «расширив объём» краткосрочной памяти, станут доступны и более сложные варианты. Но, как уже говорилось чуть ранее, манипуляции с байтами мало кому нужны, не говоря о чём-то большем.

Пример №2 . Представить двоичное число 101.102 в нормализованном виде, записать в 32-битом стандарте IEEE754.
Таблица истинности

Способы представления чисел

Алгоритм перевода чисел из одной системы счисления в другую

Пример №1 .


Перевод из 2 в 8 в 16 системы счисления.
Эти системы кратны двум, следовательно, перевод осуществляется с использованием таблицы соответствия (см. ниже).

Для перевода числа из двоичной системы счисления в восьмиричную (шестнадцатиричную) необходимо от запятой вправо и влево разбить двоичное число на группы по три (четыре – для шестнадцатиричной) разряда, дополняя при необходимости нулями крайние группы. Каждую группу заменяют соответствующей восьмиричной или шестнадцатиричной цифрой.

Пример №2 . 1010111010,1011 = 1.010.111.010,101.1 = 1272,518
здесь 001=1; 010=2; 111=7; 010=2; 101=5; 001=1

При переводе в шестнадцатеричную систему необходимо делить число на части, по четыре цифры, соблюдая те же правила.
Пример №3 . 1010111010,1011 = 10.1011.1010,1011 = 2B12,13HEX
здесь 0010=2; 1011=B; 1010=12; 1011=13

Перевод чисел из 2 , 8 и 16 в десятичную систему исчисления производят путем разбивания числа на отдельные и умножения его на основание системы (из которой переводится число) возведенное в степень соответствующую его порядковому номеру в переводимом числе. При этом числа нумеруются влево от запятой (первое число имеет номер 0) с возрастанием, а в правую сторону с убыванием (т.е. с отрицательным знаком). Полученные результаты складываются.

Читайте также:  Схема включения транзистора с общим эмиттером pnp

Пример №4 .
Пример перевода из двоичной в десятичную систему счисления. Пример перевода из восьмеричной в десятичную систему счисления. Пример перевода из шестнадцатеричной в десятичную систему счисления.

Еще раз повторим алгоритм перевода чисел из одной системы счисления в другую ПСС

  1. Из десятичной системы счисления:
    • разделить число на основание переводимой системы счисления;
    • найти остаток от деления целой части числа;
    • записать все остатки от деления в обратном порядке;
    • Из двоичной системы счисления
      • Для перевода в десятичную систему счисления необходимо найти сумму произведений основания 2 на соответствующую степень разряда;
      • Для перевода числа в восьмеричную необходимо разбить число на триады.
        Например, 1000110 = 1 000 110 = 1068
      • Для перевода числа из двоичной системы счисления в шестнадцатеричную необходимо разбить число на группы по 4 разряда.
        Например, 1000110 = 100 0110 = 4616

      Позиционной называется система, для которой значимость или вес цифры зависит от ее места расположения в числе. Соотношение между системами выражается таблицей.
      Таблица соответствия систем счисления:

      Двоичная СС Шестнадцатеричная СС
      0000
      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
      001 1
      010 2
      011 3
      100 4
      101 5
      110 6
      111 7

      Пример №2 . Перевести число 100,12 из десятичной системы счисления в восьмеричную систему счисления и обратно. Пояснить причины расхождений.
      Решение.
      1 Этап. Перевод числа из десятичной системы счисления в восьмеричную систему счисления.

      Целая часть от деления Остаток от деления
      100 div 8 = 12 100 mod 8 = 4
      12 div 8 = 1 12 mod 8 = 4 1 div 8 = 0 1 mod 8 = 1

      Остаток от деления записываем в обратном порядке. Получаем число в 8-ой системе счисления: 144
      100 = 1448

      Для перевода дробной части числа последовательно умножаем дробную часть на основание 8. В результате каждый раз записываем целую часть произведения.
      0.12*8 = 0.96 (целая часть )
      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,9610
      Разница в 0,0001 (100,12 — 100,1199) объясняется погрешностью округлений при переводе в восьмеричную систему счислений. Эту погрешность можно уменьшить, если взять большее число разрядов (например, не 4, а 8).

      Данный конвертер переводит числа между наиболее популярными системами счисления: десятичной, двоичной, восьмеричной, шестнадцатеричной.

      Система счисления — это способ представления числа. Одно и то же число может быть представлено в различных видах. Например, число 200 в привычной нам десятичной системе может иметь вид 11001000 в двоичной системе, 310 в восьмеричной и C8 в шестнадцатеричной.

      Существуют и другие системы счисления, но мы не стали включать их в конвертер из-за низкой популярности.

      Для указания системы счисления при записи числа используется нижний индекс, который ставится после числа:
      20010 = 110010002 = 3108 = C816

      Читайте также:  Аналог автокада бесплатно на русском

      Кратко об основных системах счисления

      Десятичная система счисления. Используется в повседневной жизни и является самой распространенной. Все числа, которые нас окружают представлены в этой системе. В каждом разряде такого числа может использоваться только одна цифра от 0 до 9.

      Двоичная система счисления. Используется в вычислительной технике. Для записи числа используются цифры 0 и 1.

      Восьмеричная система счисления. Также иногда применяется в цифровой технике. Для записи числа используются цифры от 0 до 7.

      Шестнадцатеричная система счисления. Наиболее распространена в современных компьютерах. При помощи неё, например, указывают цвет. #FF0000 — красный цвет. Для записи числа используются цифры от 0 до 9 и буквы A,B,C,D,E,F, которые соответственно обозначают числа 10,11,12,13,14,15.

      Перевод в десятичную систему счисления

      Преобразовать число из любой системы счисления в десятичную можно следующим образом: каждый разряд числа необходимо умножить на X n , где X — основание исходного числа, n — номер разряда. Затем суммировать полученные значения.

      Перевод из десятичной системы счисления в другие

      Делим десятичное число на основание системы, в которую хотим перевести и записываем остатки от деления. Запишем полученные остатки в обратном порядке и получим искомое число.

      Переведем число 37510 в восьмеричную систему:

      Перевод из двоичной системы в восьмеричную

      Для перевода в восьмеричную систему нужно разбить двоичное число на группы по 3 цифры справа налево. В последней (самой левой) группе вместо недостающих цифр поставить слева нули. Для каждой полученной группы произвести умножение каждого разряда на 2 n , где n — номер разряда.

      Так же как и в первом способе разбиваем число на группы. Но вместо преобразований в скобках просто заменим полученные группы (триады) на соответствующие цифры восьмеричной системы, используя таблицу триад:

      Триада 000 001 010 011 100 101 110 111
      Цифра 1 2 3 4 5 6 7

      Перевод из двоичной системы в шестнадцатеричную

      Разбиваем число на группы по 4 цифры справа налево. Последнюю (левую) группу дополним при необходимости ведущими нулями. Внутри каждой полученной группы произведем умножение каждой цифры на 2 n , где n — номер разряда, и сложим результаты.

      Также как и в первом способе разбиваем число на группы по 4 цифры. Заменим полученные группы (тетрады) на соответствующие цифры шестнадцатеричной системы, используя таблицу тетрад:

      Тетрада 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
      Цифра 1 2 3 4 5 6 7 8 9 A B C D E F

      Перевод из восьмеричной системы в двоичную

      Каждый разряд восьмеричного числа будем делить на 2 и записывать остатки в обратном порядке, формируя группы по 3 разряда двоичного числа. Если в группе получилось меньше 3 разрядов, тогда дополняем нулями. Записываем все группы по порядку, отбрасываем ведущие нули, если имеются, и получаем двоичное число.

      Используем таблицу триад:

      Цифра 1 2 3 4 5 6 7
      Триада 000 001 010 011 100 101 110 111

      Каждую цифру исходного восьмеричного числа заменяется на соответствующие триады. Ведущие нули самой первой триады отбрасываются.

      Перевод из шестнадцатеричной системы в двоичную

      Аналогично переводу из восьмеричной в двоичную, только группы по 4 разряда.

      Используем таблицу тетрад:

      Цифра 1 2 3 4 5 6 7 8 9 A B C D E F
      Тетрада 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

      Каждую цифру исходного числа заменяется на соответствующие тетрады. Ведущие нули самой первой тетрады отбрасываются.

      Перевод из восьмеричной системы в шестнадцатеричную и наоборот

      Такую конвертацию можно осуществить через промежуточное десятичное или двоичное число. То есть исходное число сначала перевести в десятичное (или двоичное), и затем полученный результат перевести в конечную систему счисления.

      Ссылка на основную публикацию
      Почему телефон ночью быстро разряжается
      Если телефон стал быстро разряжаться, это еще не значит, что виновата батарея. В 70% случаев пользователь сам настроил устройство таким...
      Почему имя пользователя недоступно в инстаграме
      Как быть, если такое имя пользователя Instagram уже занято, но соответствующий ему аккаунт кажется неактивным? Если имя пользователя, которое вы...
      Почему индукционная плита щелкает
      Если индукционная плита щелкает при работе, рекомендуется ознакомиться с особенностями работы техники. При уверенности, что устройство вышло из строя, не...
      Почему телефон самостоятельно перезагружается
      Постоянная и не запланированная перезагрузка смартфона на Android – раздражающая ошибка. Она порождает плохое настроение и желание расстаться с гаджетом....
      Adblock detector