Шестнадцатиричная система счисления

Общие сведения

Система счисления — метод символьного типа для записи чисел с помощью определенных знаков. Последние записываются посредством чисел и цифр. Однако не все понимают логического смысла последних терминов. Числом называется некоторая абстрактное значение, характеризующее количественные характеристики какой-либо величины, явления или процесса. Цифра является знаком, который необходим для записи числа.

Цифры бывают 2 видов: арабскими и римскими. Первые являются самыми распространенными. Они представлены знаковым интервалом от 0 до 9. Чисел больше, и поэтому используется набор цифр. Для этого и были придуманы системы исчисления. Они делятся на четыре группы:

  1. Позиционные.
  2. Непозиционные.
  3. Смешанные.
  4. Унарные.

К первой группе относятся все разрядные системы, в которых положение и порядок знака играет важную роль. От этого зависит значение величины. Если изменить положение цифр, то число изменится.

Во втором случае простым примером является массив данных с параметром «ключ — значение». Например, массив ассоциативного типа состоит из 3 элементов: ‘login’ -> ‘Ivan10’, ‘pass’ -> ‘12345’ и ‘name’ -> ‘Иван’. В этом случае данные можно менять местами, поскольку логика сохранится.

Смешанной является система, в которой присутствуют данные позиционной и непозиционной групп.Простой пример — деньги. Существуют два типа денежных знаков: монеты и купюры. Например, техника стоит 5250 рублей 50 копеек.

Для получения данной суммы следует использовать некоторое количество купюр и монет: 5250,50 = (5000 + 200 + 50) рублей + 50 копеек.

Унарной называется единичная система с одной цифрой. Последняя может быть представлена в виде 1, черты, креста и любого целого значения. Иными словами, каждый знак соответствует 1. Например, запись «1111111» эквивалентна «|||||||». Если расшифровать ее, то получится число 7. В книге Даниэля Дефо «Робинзон Крузо» герой применял данную систему для подсчета дней, проведенных на острове. Детей обучают математике на начальном уровне с помощью счетных палочек. Если вспомнить историю, то древние люди тоже пользовались унарным счислением.

Видео

Шестнадцатеричная система счисления

В шестнадцатеричной системе счисления одним символом отображаются числа от нуля до шестнадцати. Чтобы не сочинять новых отображений цифр, решили использовать буквы латинского  алфавита: A, B, C, D, E, F.

Для большей понятности  — внизу приведена таблица соответствия цифр трём системам счисления.

12345678910111213141516171819202122 DEC BIN HEX ДесятичнаяДвоичнаяШестнадцатиричная 1 1 1 2 10 2 3 11 3 4 100 4 5 101 5 6 110 6 7 111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 16 10000 10 17 10001 11 18 10010 12 . . . .

Запоминать соответствия цифр нет необходимости. В состав Windows любой версии входит программа «калькулятор» — calc.exe. Запустите её, переключитесь в программистский вид (Вид->Программист или Alt+3) и да пребудет с вами сила!

Калькулятор программиста: HEX, DEC, OCT, BIN.
Калькулятор программиста: HEX, DEC, OCT, BIN.

Как перевести десятичное число в шестнадцатеричное?

Чтобы перевести десятичное число в шестнадцатеричное, необходимо выполнить следующие действия:

  1. Проверяем, не меньше ли 16 наше число: если да, то результат достигнут. Действительно, такое десятичное число необходимо лишь заменить соответствующей ему шестнадцатеричной цифрой из таблицы 1. Если же наше десятичное число больше 16, переходим к шагу 2.
  2. Делим наше число НАЦЕЛО на 16 и запоминаем целочисленный остаток от этого деления. Результат этого деления снова сравниваем с 16. Если результат деления меньше 16, то его стоит тоже запомнить как последний из остатков.
  3. Шаг 2 повторяем до тех пор, пока результат деления не будет меньше 16. Целочисленные остатки на всех этапах запоминаем. Они понадобятся в шаге 4.
  4. Все остатки записываем в обратном порядке и заменяем в них числа от 10 до 15 шестнадцатеричными цифрами от a до f.

Проиллюстрируем эти правила примером.

Переведем десятичное число 89 в шестнадцатеричное. Оно больше 16, поэтому разделим его на 16. Частное равно 5 и 9 в остатке. 5 меньше 16, значит, деление прекращается и 5 запомним как последний остаток. То есть у нас есть два остатка: 9 и 5. Теперь их надо записать в обратном порядке, получаем: 89 = 0×59.

Проверим, действительно ли 0×59 равно 89? Распишем его по привычной уже схеме: 0×59 = 5×161 + 9×16 = 5×16 + 9 = 89.

Действительно, получилось. Но в выбранном мной примере число 89 очень быстро закончилось, если так можно сказать. В противном случае деление потребовалось бы продолжить. Покажем это на более сложном примере. Возьмем число 3728: 3728 / 16 = 233 и  в остатке. Затем 233 / 16 = 14 и 9 в остатке. Результат этого деления равен 14, он меньше 16. Деление заканчиваем и запоминаем этот результат деления как последний остаток. Нам осталось лишь записать эти остатки в обратном порядке и заменить десятичное число 14 на шестнадцатеричную цифру E. Итак, искомое число 0xE90.

В качестве домашнего задания можете перевести это число в десятичное и проверить, действительно ли 0xE90 равно 3728?

На этом месте статья заканчивалась, я решил ее несколько дополнить. Продолжаем.

Работа с двоичным кодом

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

Для преобразования IT-специалисты предлагают 3 метода:

  • деление с отсечением остатка;
  • представление в виде степеней двойки;
  • автоматизированный.

Первый и второй способы используются на первоначальных этапах знакомства с системами. Они считаются ресурсоемкими, поскольку отнимают время. Последний реализуется с помощью специальных программ, поддерживающих конвертацию из одной системы в другую. Этим методом пользуются все программисты. В различных операционных системах есть приложения, работающие в таком режиме (например, калькулятор Windows).

Однако нужно подробнее разобрать первые два метода, поскольку задачи на конвертацию могут быть на экзаменах или контрольных.

Деление с отсечением остатка

Начинающему программисту необходимо обязательно знать алгоритм преобразования, и уметь применять его на практике. К

роме того, на экзаменах по дисциплинам с IT-уклоном может быть задача, в которой следует выполнить конвертацию из одной системы счисления в другую.

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

  1. Записать число в десятичной форме и определить его четность.
  2. Воспользоваться правилом: для четных — 0, а для нечетных — 1.
  3. Выполнить деление на 2, записывая 0 или 1.
  4. Операцию осуществлять до последнего четного или нечетного числа.
  5. Записать результат.
  6. Проверить 5 шаг при помощи калькулятора.

Для наглядного примера стоит применить алгоритм на практике.

Для перевода числа 13 нужно выполнить следующие шаги:

  1. Число 13 является нечетным.
  2. Первый элемент: 13 / 2 = 6 (остаток равен 1).
  3. Второй: 6 / 2 = 3 (0).
  4. Третий: 3 / 2 = 1 (1).
  5. Четвертый: остаток 1.
  6. Результат: [1011]{2}.
  7. При проверке результаты совпадают.

Нужно обратить внимание на форму записи в 6 пункте.

Таким способом правильно записывается число в системах счисления.

Можно применять также вместо {2} нижний индекс, указывающий искомую систему.

Последний пункт нужно выполнять постоянно, поскольку это поможет избежать проблем при расчетах.

Если ничего нет под рукой, то можно произвести возведение в степень. Это делается следующим образом: [1011]{2} = 2 3 + 0 + 2 1 + 2 = 8 + 0 + 2 + 1 = [13]{10}.

Степенной метод

Для реализации этого метода необходимо воспользоваться таблицей степеней двойки (табл. 1). Ее можно составить самостоятельно или скачать из интернета. Суть метода сводится также к вычислениям и подборам значений.

Показатель степени, n Результат возведения
0 1
1 2
2 4
3 8
4 16
5 32
6 64

Таблица 1. Степень двойки до 6 и ее значения.

Специалисты рекомендуют воспользоваться обыкновенным калькулятором, который разрешен на экзаменах или тестах. Кроме того, следует составить таблицу, поскольку это оптимизирует процесс вычислений. Для конвертации есть специальный алгоритм:

  1. Записать число.
  2. Определить интервал, в который оно входит.
  3. Найти максимальное значение степени, которое должно быть меньше искомого числа.
  4. Записать 1.
  5. Вычесть от числа в первом пункте значение, полученное в пункте 3.
  6. Повторить процедуру 5 шага до получения минимального значения.
  7. Записать число в двоичной системе.
  8. Выполнить проверку.

Для проверки рекомендуется воспользоваться специальным калькулятором или выполнить сложение всех значений степеней. Для примера можно рассмотреть конвертацию числа 118 в двоичный код. Операция выполняется таким образом:

  1. Число 118 превышает значение, указанное в таблице 1. Следовательно, ее нужно расширить, добавив 2 7 = 128.
  2. Для искомого числа выполняется неравенство 2 6 < 118 < 2 7 . Нужно брать величину 2 6 = 64.
  3. Первая цифра двоичного кода: 1. Остаток: 118 — 64 = 54.
  4. Вторая: 1. Остаток: 54 — 2 5 = 54 — 32 = 22.
  5. Третья: 1 (22 — 2 4 = 22 — 16 = 6).
  6. Четвертая: 0, поскольку 6 < 2 3 . Следовательно, берется другая степень.
  7. Пятая: 1 (6 — 2 2 = 6 — 4 = 2).
  8. Шестая: 1 (2 — 2 1 = 0).
  9. Седьмая: 0, поскольку остаток равен 0.
  10. Запись в двоичном коде: [1110110]{2}.

Чтобы проверить в ручном режиме, нужно произвести обратные вычисления: 2 6 + 2 5 + 2 4 + 0 + 2 2 + 2 1 + 0 = [118]{10}.

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

Как же нам переводить числа из одной системы счисления в другую? Здесь все просто, следуем примеру из второй главы, где  написано, как использовать калькулятор Windows для перевода чисел из десятичной системы в двоичную. С помощью этого калькулятора мы также можем переводить числа из десятичной системы счисления в двоичную,  восьмеричную, шестнадцатеричную и обратно. Запускаем наш калькулятор, пишем от балды число «123» в десятичной системе счисления. Для этого ставим маркер на «Dec» и для красоты «1 байт».

Для того, чтобы перевести это число в двоичную систему счисления, ставим маркер на «Bin» и получаем число «123» в двоичной системе счисления.

Для перевода в восьмеричную систему ставим маркер на «Oct».

Ну и для перевода в шестнадцатеричную систему ставим маркер на «Hex».

Все операции взаимозаменяемы. Это значит, что мы можем перевести число из двоичной в шестнадцатеричную, из восьмеричной в двоичную и так далее. Чтобы не спутать системы счисления  и знать, какое число записано, после каждого записанного числа снизу ставится его индекс системы счисления. Например:

7ВС16  — значит число записано в шестнадцатеричной системе счисления

10112  — в двоичной системе

4578 — в восьмеричной системе

998510 — в десятеричной системе.

Теги