Что такое шестнадцатеричная система счисления

Системы счисления – одна из самых главных основ информатики. Практически ни в одной школе и ни в одном университете не пропускают данную тему, но зачастую именно с переводом шестнадцатеричной системы у многих возникают проблемы, хотя это не такая уж сложная задача, и её перевод практически не отличается от других систем счисления.

Давайте рассмотрим эту систему поподробнее.

Для чего нужна шестнадцатеричная система

Итак, шестнадцатеричная система счисления, как следует из названия, имеет в своём основании число 16. Почему так? Дело в том, что единица информации в информатике – это бит. Восемь бит образуют байт. Также информационной среде существует такое понятие, как машинное слово – это минимальная единица данных, представляющая собой шестнадцать бит, то есть два байта. Считается, что машинное слово – это минимальная величина разрядности регистров процессора, при которой можно работать с ЭВМ.
Так вот, как мы знаем, компьютер работает на двоичном коде. Однако, если Вы когда-нибудь переводили числа из двоичной системы в десятичную, то замечали, что в ней бывает довольно много разрядов, особенно при переводе больших чисел, например, перевод числа 5132 в двоичной системе будет записано так:

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

Как можно увидеть, при переводе в двоичную систему этого числа у нас получилось аж 13 разрядов (с 0 до 12). Довольно муторно, а главное, занимает много места на письме и отнимает много времени для перевода.
Именно для этого придумали восьмеричную и шестнадцатеричную системы счисления, для этого придумали и байты. Эти системы помогают сократить затраты на перевод чисел и привести их к более приятному визуальному виду.
Если перевести то же число 5132 в восьмеричную систему счисления, то получится «более сокращённая версия» двоичного кода:

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

Как мы видим, количество символов сократилось, так как разрядность уменьшилась до 5 (с 0 до 4).
Как можно уже понять, шестнадцатеричная система ещё сильнее сокращает разрядность (с 0 до 3) и ещё сильнее сжимает на письме переведённое число:

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

Человеку такой вид записи в любом случае удобнее, чем бесконечные нули и единицы.

Таким образом, шестнадцатеричная система используется довольно широко в современных информационных системах. Например, при помощи неё указываются коды цветовых схем, данная система используется для записи кодов ошибок, а также для программирования на языках низкого уровня типа Ассемблера, шестнадцатеричную систему зачастую используют для предоставления данных и адресов в малоразрядных ЭВМ.

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

Что такое шестнадцатеричная система счисления

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

При использовании шестнадцатеричных чисел следует помнить, что в числовом ряду шестнадцатеричных чисел после числа 9 идет А, а после F следует двузначное число 10.

Перевод 16 –10

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

Например, 1F4 = 1 * (16^2) + 15 * (16^1) + 4 * (16^0) = 256 + 240 + 4 = 500

Обратный перевод выполняется последовательным делением десятичного числа на 16 и взятия остатков от деления. Причем полученные остатки в диапазоне от 10 до 15 надо заменить соответствующей буквой.

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

Например: 500 / 16 = 31 (остаток 4)

31 / 16 = 1 (остаток 15 заменяем на букву F)

Таким образом, получено шестнадцатеричное число 1F4.

Что такое шестнадцатеричная система счисления

Уважаемые коллеги, мы рады предложить вам, разрабатываемый нами учебный курс по программированию ПЛК фирмы Beckhoff с применением среды автоматизации TwinCAT . Курс предназначен исключительно для самостоятельного изучения в ознакомительных целях. Перед любым применением изложенного материала в коммерческих целях просим связаться с нами. Текст из предложенных вам статей скопированный и размещенный в других источниках, должен содержать ссылку на наш сайт heaviside.ru . Вы можете связаться с нами по любым вопросам, в том числе создания для вас систем мониторинга и АСУ ТП.

Системы счисления

Уважаемые коллеги, эта статья будет полностью состоять из теории, мы рассмотрим системы счисления. При чтении этой статьи вы познакомитесь с двоичной и шестнадцатеричной системами счисления. Возможно, кому-то из читателей материал по системам счисления и переводу чисел из одной системы в другую может показаться сложным или скучным. Однако автор настоятельно рекомендует понять хотя бы их базовые принципы, так как в области программирования ПЛК, как и во многих других сферах программирования, они все еще достаточно актуальны и часто требуются на практике.

Бит, байт и размер данных

В прошлых статьях, когда мы рисовали схемы на языке LD, мы использовали тип данных BOOL. BOOL — это простейший тип данных, который может принимать всего два значения: и , они же FALSE и TRUE и содержит в себе количество информации, соответствующее одному биту. Бит — это наименьшее количество информации. Один бит равен количеству информации, получаемой в результате осуществления одного из двух равновероятных событий. Например, выпадение орла или решки при бросании монетки. Помимо бита для обозначения количества информации применяют понятие байта. В современных системах обычно имеют в виду, что байт состоит из восьми бит. При записи в качестве единицы измерения биты записываются как «бит», а байты как «Б», например, бит, Б. Как и для других единиц измерения, для записи количества информации перед единицей измерения используются десятичные приставки СИ . Кроме того, для битов и байтов используют двоичные приставки .

НазваниеОбозначениеСтепень
килоК
мегаМ
гигаГ
терраТ
петаП

Например, Кбит = бит = КБ = Б.

НазваниеОбозначениеСтепеньМножитель
кибибайтКи (Ki)
мебибайтМи (Mi)
гибибайтГи (Gi)
тебибайтТи (Ti)
пебибайтПи (Pi)1,024,899,906,842,624

Например, Кибит = бит = КиБ = Б.

Иногда при написании десятичных приставок имеются в виду двоичные, то есть при записи КБ имеется в виду Б. Такое использование приставок формально хоть и не является корректным, но очень часто встречается на практике.

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

Системы счисления

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

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

Системы счисления делятся на позиционные, непозиционные и смешанные:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

  • Позиционные системы счисления — системы счисления, в которых значение каждого числового знака (цифры) в записи числа зависит от его позиции (разряда). Например, рассмотрим число , — означает количество сотен, — количество десятков, — количество единиц. Так, арабская система счисления, которой все мы пользуемся в повседневной жизни, является десятичной позиционной системой. Обратим внимание на слово «десятичная». В данном примере оно связано с основанием системы счисления, а именно количеством знаков, используемых для записи числа в той или иной системе. В десятичной системе для записи используются цифры . Основанием является число .
  • Смешанные системы счисления, — системы счисления, в которых числа, заданные в некоторой системе счисления с основанием P, изображаются с помощью цифр другой системы счисления с основанием Q, где Q
  • Непозиционные системы счисления — системы счисления, в которых величина, обозначаемая цифрой, не зависит от положения в числе. При этом система может накладывать ограничения на положение цифр, например, чтобы они были расположены в порядке убывания. Примерами непозиционных счисления являются римская , египетская и система остаточных классов .

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Далее в этой статье речь пойдет только о позиционных системах счисления. Как говорилось выше, в компьютерах применяют двоичную позиционную систему счисления. Для начала давайте разберемся, что такое число и чем оно отличается от цифры. Число используется для счета и выражает количество. Цифры — это набор знаков для записи чисел. В арабской системе счисления цифрами являются знаки , в двоичной — и . Каждая цифра в записи числа, называется разрядом. В информатике разряд числа считается справа налево, начиная с нуля. При записи в десятичной системе числа цифра является нулевым разрядом, цифра — первым, цифра — вторым разрядом.

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

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

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

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

Десятичная цифраШестнадцатеричная цифра
A
B
C
D
E
F

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

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

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

ПрефиксСистема счисления
#двоичная
#восьмеричная
отсутствуетдесятичная
#шестнадцатеричная

То есть двоичное число в TwinCAT записывается как # .

Восьмеричная система хоть и поддерживается в TwinCAT, но в настоящее время почти не используется. Изложенного выше материала должно быть достаточно для ее понимания.

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

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

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

Выглядит сложно, но на практике довольно просто, число можно представить в виде:

(4*100)+(8*10)+(3*1)= (4*10^2)+(8*10^1)+(3*10^0)

Кстати, именно из-за такой формы записи разряды чисел считают, начиная с нуля, а не с единицы.

Число ​ (десятичное )​ можно представить в виде:

10,0000_2+1,0000_2+10_2+1_2=(1*2^5)+(1*2^4)+(1*2^1)+(1*2^0)

Вспомнив, что можно продолжить выражение.

(1*2^5)+(1*2^4)+(1*2^1)+(1*2^0)= 32+16+2+1=51

Можно заметить, что достаточно запомнить, какое десятичное значение соответствует каждому двоичному разряду и просуммировать их при переводе.

Номер
разряда
Двоичное
значение
Десятичное
значение

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

Давайте решим несколько примеров для закрепления:

128+16+2+1=147

128 + 64 + 32 + 16 + 8 = 248

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

Приведем пример с числом :

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

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

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

В целом порядок перевода в десятичную и в шестнадцатиричную систему схожи. Главное отличие в том, таблица перевода будет повторяться каждые четыре строчки, так как 16=24. Таким образом, выучив всего четыре строчки, вы сможете переводить числа любого размера.

Номер
разряда
Двоичное
значение
Шестнадцатеричное
значение

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

Повторим некоторые примеры, которые мы приводили для десятичной системы:

80_{16}+10_{16}+2_{16}+1_{16}=93_{16}

80_{16} + 40_{16} + 20_{16} + 10_{16} + 8_{16} = F8_{16}

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

Приведем пример с числом (десятичное ):

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

Еще один простой способ перевода чисел между системами счисления – это использование стандартного калькулятора в Windows (предварительно необходимо переключить в режим «Программист»).

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

Оцените статью
TutShema
Добавить комментарий