На уроках информатики в 8 классе изучается шестнадцатеричная система счисления. В IT-дисциплинах она применяется достаточно часто. Для декодирования числовой и буквенной информации в этот формат применяются специальные алгоритмы. Чтобы в них разобраться, необходимо иметь некоторые базовые понятия, а также уметь работать с двоичным и десятичным кодами.
Общие сведения
Система счисления (СС) — набор некоторых символов, используемых для кодирования и декодирования информации различной формы. Любое представление имеет определенные свойства, которые и показывают основное отличие одной СС от другой. К ним относятся следующие:
- Алфавит.
- Мощность кодирования и декодирования.
- Величина основания.
- Способ получения.
Алфавитом называется набор цифр (иногда и литер), применяемых для построения заданного числового значения. В шестнадцатеричной системе счисления (HEX) применяются все цифры (от 0 до 9), а также буквы английского алфавита (А, B, C, D, E и F). Следует отметить, что для формирования HEX-величины используют шестнадцать знаков.
Специалисты рекомендуют составить таблицу шестнадцатеричной системы, состоящей из двух граф (HEX-кода и его расшифровки в десятичной форме). Ее также можно записать в виде обыкновенного списка:
- [1]{16}=1.
- [2]{16}=2.
- [3]{16}=3.
- [4]{16}=4.
- [5]{16}=5.
- [6]{16}=6.
- [7]{16}=7.
- [8]{16}=8.
- [9]{16}=9.
- [0]{16}=0.
- [A]{16}=10.
- [B]{16}=11.
- [C]{16}=12.
- [D]{16}=13.
- [E]{16}=14.
- [F]{16}=15.
Cледует отметить, что таблицу шестнадцатеричной системы представления величин специалисты рекомендуют записать на отдельном листе бумаге. Она должна быть постоянно перед глазами.
Мощность кодирования и декодирования данных определяется основанием СС. Чем оно больше, тем больше мощность формы представления чисел. Основанием называется определенный коэффициент, присутствующий в каждой СС. Он и дает название представлениям чисел, т. е. 5 — пятеричная, 6 — шестеричная, 14 — четырнадцатеричная и т. д.
Последняя характеристика (вид получения) показывает возможность кодирования числа в заданную форму представления. Она делится на два типа: прямой и косвенный. В первом случае операция конвертации происходит сразу. Например, для представления числа в двоичном коде его достаточно просто перевести по определенному алгоритму из десятичного формата в двоичную запись.
Иначе дело обстоит с 16-ричной СС, поскольку десятичный элемент нужно конвертировать в двоичный код, а затем уже в заданное hex-представление. Далее нужно рассмотреть классификацию СС.
Виды систем счисления
Системы представления делятся на два вида. К ним относятся следующие: позиционные и не зависящие от позиции символов. Первые включают в свой состав разрядную сетку. Последняя состоит из разрядов-цифр. Они стоят на определенном значимом месте, т. е. каждый из них имеет конкретное значение.
Чтобы был понятен принцип построения числа, необходимо рассмотреть значение «236». Величина состоит из разрядной сетки, в которую входят всего три компонента, а именно: единицы, десятки и сотни. Первое значение эквивалентно 6, второе — 3, а третье — 2. Расписать величину можно следующим образом: 6*10^0+3*10^1+2*10^2=6+30+200. В сумме элементы образуют значение 236.
Если поменять местами элементы, то получаются совершенно разные величины. Это говорит о том, что порядок цифр в разрядной сетке имеет очень важное значение. Исключением являются унарные формы представления чисел.
Унарной, или непозиционной, называется такая система счисления, в которой от положения символов не зависит величина. Например, в известном рассказе герой Робинзон Крузо вел подсчет дней, проведенных на необитаемом острове, при помощи обыкновенных палочек. Он записывал их в ряды, но при перестановке искомых элементов количество дней не менялось. Далее необходимо ознакомиться с применением HEX-чисел в программировании.
Использование в IT-сфере
HEX-форма записи величин получила широкое распространение в программировании с использованием регистров оперативной памяти и жесткого диска. На этих устройствах данные кодируются в определенном формате (шестнадцатеричная система в таблице специального типа). Чтобы проверить правильность работы программы, необходимо знать специальные методики конвертации.
Кроме того, необходимо знать порядок и правила выполнения арифметических операций, таких как сложение, вычитание, умножение и деление. Для этих целей применяются специальные приложения (калькуляторы). Однако бывают случаи, когда их нет под рукой. В этом случае необходимо выполнять конвертацию в десятичную систему представления величин. Следует выполнять необходимые операции, а затем переводить опять в HEX-код.
Следует отметить, что действия, позволяющие складывать или вычитать, можно выполнять без конвертации (прямо в HEX-формате). При этом нужно следить за переполнением разряда. Сложение шестнадцатеричных чисел можно осуществлять при помощи HEX-калькулятора. Если этого не делать, то можно сделать множество ошибок.
Вычитание шестнадцатеричных чисел выполняется по такому же принципу, что и сложение. Однако в этом случае нужно внимательно следить за убыванием старшего разряда. Умножать и делить нужно только при помощи специальных средств вычислительной техники, поскольку операции являются очень сложными.
Для примера можно сложить два числа, записанных в HEX-виде, а именно: F7 и 13. Первое число имеет высший разряд, значение которого равно F (максимальной цифре). При этом будет происходить переполнение разряда, т. к. F+1=1F. Если сложить величины, то получится такое число: 2F0. Начинающий IT-арифметик может потренироваться, придумывая примеры. Однако необходимо помнить, что любой результат должен проверяться при помощи калькулятора.
Методика конвертации
Методика перевода позволяет переводить десятичную форму в HEX-код. Чтобы выполнить данную операцию, нужно научиться переводить величины в двоичный код. Это делается при помощи такого алгоритма:
- Записать величину в десятичном формате: 131.
- Выполнить операцию деления на 2, записав соответствующий символ (0 — деление нацело, 1 — с остатком): 131/2=65 (1).
- 65/2=32 (1).
- 32/2=16 (0).
- 16/2=8 (0).
- 8/2=4 (0).
- 4/2=2 (0).
- 2/2=1 (остаток).
- Искомая величина (писать необходимо снизу вверх): [1000011]{2}.
Обратное преобразование является более простым. Для этого необходимо расписать величину по степеням с коэффициентами (0 — нет значения или 1 — величина присутствует), т. е. 1*2^0+1*2^1+0*2^2+0*2^3+0*2^4+0*2^5+1*2^6=1+2+128=131.
Для перевода в 16-ричную систему исчисления применяется алгоритм. Его реализация имеет следующий вид:
- Записать значение: 131.
- Конвертировать в двоичный код: 1000011. Можно не указывать фигурные скобки.
- Разложить величину, полученную во втором пункте, на тетрады по 4 компонента (сколько символов двоичного представления, столько и групп, деленных на двойку). Если при распределении не хватает элементов, то их можно дополнить нулями слева: (0100)(0011).
- Запись искомого числа: [43]{16}.
Обратная конвертация осуществляется также по некоторой методике. Она имеет такой вид:
- Написать HEX-число: [43]{16}.
- Разложить его по одному элементу: (4) (3).
- Перевести компоненты, полученные во втором пункте, в двоичный код: (0100)(0011).
- Конвертировать в десятичный формат: 131.
Следует отметить, что IT-специалисты настоятельно рекомендуют проверять результаты вычислений при помощи онлайн-калькуляторов для работы с двоичным и HEX-кодами. Если нет возможности выполнить проверку таким методом, то необходимо при получении результата выполнять на отдельном листе бумаги противоположную операцию, т. е. перевод в HEX-систему и обратно. В последнем случае вычисление должно соответствовать искомому значению в десятичной форме.
Таким образом, при выполнении различных арифметических операций с HEX-кодом необходимо знать методики конвертации и следовать рекомендациям специалистов в области IT-сферы.