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


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

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

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

Каждый школьник знает или хотя бы где-то слышал, что все цифры, которые мы обычно используем, образуют десятичную систему счисления. Это название она носит просто потому, что различных символов в ней всего десять (от 0 до 9). Любое число в нашей привычной системе может быть записано с их помощью. Однако, оказывается, использовать ее удобно бывает далеко не всегда. Например, при обмене информацией между цифровыми устройствами проще всего применять систему счисления, в которой есть только две цифры: «0» - нет сигнала - или «1» - есть сигнал (напряжение или что-то еще). Она называется двоичной. Однако, чтобы описать процессы внутри таких устройств с ее помощью, придется выполнять слишком длинные и трудные для понимания записи. Поэтому была придумана шестнадцатиричная система счисления.

Понятие шестнадцатеричной системы

Почему же для цифровых устройств используется именно система, которая содержит шестнадцать разных символов? Как известно, информация в компьютерах передается в виде байтов, которые обычно содержат 8 бит. А единица данных – машинное слово – включает в себя 2 байта, то есть 16 бит. Таким образом, с помощью шестнадцати разных символов можно описать ту информацию, которая является мельчайшей частицей при обмене. Шестнадцатиричная система счисления включает наши привычные цифры (естественно, от 0 до 9), а также первые буковки латинского алфавита (A, B, C, D, E, F). Именно с помощью этих символов принято записывать любую единицу информации. С ними можно производить любые арифметические действия. То есть сложение, вычитание, умножение, деление. Результатом также будет шестнадцатеричное число.

Где применяется

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

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

fb.ru

Шестнадцатеричная система счисления - Программирование на C, C# и Java

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

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

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

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

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

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

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

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

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

Выше мы уже немного затронули процесс перевода чисел. Теперь мы рассмотрим его подробнее и на примерах.

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

Так как система имеет своим основанием число 16, то, следовательно, всего в этой системе имеется 16 цифр, но если первые десять цифр (0-9) вполне привычные для нас, то остальные имеют вид не совсем цифровой, но, тем не менее, являются цифрами, а именно значения A, B, C, D, E, F, которые соответствуют нашим привычным числам с 10 до 15. Все цифры шестнадцатеричной системы и их «аналоги» в десятичной записаны в таблице ниже.

Итак, допустим, у нас есть число 40 563 в десятичной системе счисления. Переведём его в шестнадцатеричную.

  1. Сначала мы просто делим наше исходное число 40 563 на 16 в столбик. В частном у нас получилось 2 535, если умножить это число на 16, то получится 40 560, а в остатке 3. Эту тройку мы выделяем.

  1. Теперь мы делим 2 535, и тоже на 16, и тоже абсолютно таким же образом. Частное – 158, 16*158 = 2 528, а в остатке 7. Остаток так же, как и в тот раз, выделяем.

  1. Делим полученные частные до тех пор, пока они не станут меньше 16, тогда деление заканчивается. Делим 158 на 16, и находим остаток от этого деления.

Остаток от деления – 14, а частное, полученное при делении 158 на 16 равно 9. Так как 9 меньше 16, то процесс вычислений закончен, а 9 также выделяется.

  1. Процесс преобразования десятичного числа в шестнадцатеричное почти окончен. Для того, чтобы получить его, надо всего лишь выписать выделенные числа справа налево (т.е. в данном случае от девятки к тройке), НО, как мы писали выше, у шестнадцатеричной системы свой особый «алфавит» с 10 по 15. И как раз один из наших «остатков» (число 14) вписывается в этот диапазон, поэтому надо посмотреть в таблице, либо просто самостоятельно посчитать, что в шестнадцатеричной системе 14 будет буквой Е.

Итого весь процесс преобразования приведён на следующем изображении:

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

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

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

  1. Мы справа налево отделяем от числа все цифры и умножаем каждую из них на 16, и всё это складываем:

Также обязательно необходимо перевести буквенные обозначения шестнадцатеричной системы в числовые, чтобы можно было посчитать их в десятичном виде, то есть, для данного случая, перевести B в 11 и C в 12.

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

Теперь нам остаётся только перемножить и сложить всё это:

Таким образом, мы превратили шестнадцатеричное число 1C3B3 в десятичное число 115 635.

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

 

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

4.79 (95.79%) 19 votes

Поделиться в соц. сетях:

vscode.ru

Шестнадцатеричная система - счисление - Большая Энциклопедия Нефти и Газа, статья, страница 1

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

Cтраница 1

Шестнадцатеричная система счисления имеет основание й16иа4 0, 1, 2, 3, 4, 5 6, 7 8, 9, Л, В, С D E F. При таком изображении цифр в шестнадцатеричной системе счисления буква А изображает десять, В - - одиннадцать, С - двенадцать, D - тринадцать, Е - четырнадцать, F - пятнадцать.  [1]

Шестнадцатеричная система счисления так же, как и восьмеричная, используется при составлении программ для более короткой и удобной записи двоичных кодов - команд. Кроме того, в некоторых ЭВМ шестнадцатеричная система счисления применяется для представления чисел в полулогарифмической форме.  [2]

Шестнадцатеричная система счисления наилучшим образом подходит для представления данных и адресов в 8 -, 16 - и 32-разрядных ЭВМ. Байтовые значения удобно выражаются двумя символами, а 16 - и 32-разрядные величины легко поделить на байты.  [3]

Шестнадцатеричная система счисления удобна тем, что ее основание - целая степень числа два: 16ц0) 24 ( Ю) - Поэтому перевод числа из шестнадцатеричной системы счисления в двоичную очень прост: достаточно заменить каждую шестнад-цатеричную цифру двоичной тетрадой.  [4]

Шестнадцатеричная система счисления предполагает другую трактовку 4-разрядных двоичных чисел.  [5]

Назначение шестнадцатеричной системы счисления аналогично восьмеричной - для компактной записи двоичных кодов чисел и команд. В современных ЭВМ шестнадцатеричной системе счисления отдается предпочтение перед восьмеричной.  [6]

Использование шестнадцатеричной системы счисления в ЭВМ общего назначения, как будет видно из дальнейшего изложения, позволяет расширить допустимый диапазон представления нормализованных чисел.  [7]

В шестнадцатеричной системе счисления базисными являются числа от нуля до пятнадцати. Эта система отличается от рассмотренных ранее тем, что в ней общепринятых ( арабских) цифр не хватает для обозначения всех базисных чисел, поэтому приходится вводить в употребление новые символы.  [8]

Основным достоинством шестнадцатеричной системы счисления является то, что она позволяет более компактно делать записи двоичных чисел. Например, адреса основной оперативной памяти имеют 24 двоичных разряда; специальные слова, отражающие состояние вычислительного процесса, имеют 64 двоичных разряда.  [9]

Указанные достоинства восьмеричных и шестнадцатеричных систем счисления определили использование их при составлении программ для более короткой и удобной записи двоичных чисел, команд и специальных двоичных слов, с которыми оперирует ЭВМ. Особенно оказалось удобным использование шестнадцатеричной системы, когда разрядность чисел и команд выбрана кратной байту, при этом каждый двоичный код байта запишется в виде 2-разрядного шестнадцатеричного числа.  [10]

Перевод чисел из шестнадцатеричной системы счисления в двоичную и обратно. Для перевода числа из шестнадцатеричной системы счисления в двоичную необходимо каждую цифру этого числа заменить тетрадой - четырехразрядным двоичным числом. Так как шестнадцать является степенью двойки ( 1624), то шестнадцатерично-двоичный код совпадает с двоичным кодом.  [11]

Помимо применения в шестнадцатеричной системе счисления, шестнадцатеричные числа используются для представления упакованных десятичных цифр и для определения полубайтовых конфигураций алфавитно-цифровых символов кода EBCDIC. Структура упакованной десятичной системы будет описана в этой главе; шестнадцатеричные конфигурации алфавитно-цифровых символов кода EBCDIC рассматриваются по всему тексту книги.  [12]

Все адреса даны в шестнадцатеричной системе счисления.  [13]

При записи команд ЭВМ используется шестнадцатеричная система счисления. Код операции записывается двумя цифрами и занимает один байт памяти ( 0 - 7 разряды команды), а адресная часть - от двух до десяти цифр ( от одного до пяти байтов) в зависимости от форматного кода. Для записи кода операции используется также и мнемоническое обозначение. Операнды, используемые в командах, могут размещаться в основной памяти или в регистрах. Регистр представляет собой тоже запоминающее устройство емкостью в слово или двойное слово. В распоряжении процессора имеется целый ряд регистров различного назначения.  [14]

В табл. 4.5 показаны цифры шестнадцатеричной системы счисления и их эквивалентные представления в десятичной и двоичной системах. Программисты микро - ЭВМ чаще всего употребляют шестнадцатеричные числа, поскольку перевод информации из шестнадцатеричной в двоичную форму представления очень прост.  [15]

Страницы:      1    2    3    4

www.ngpedia.ru

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

 

Двоичная система счисления

Для представления чисел в микропроцессоре используется двоичная система счисления. При этом любой цифровой сигнал может иметь два устойчивых состояния: «высокий уровень» и «низкий уровень». В двоичной системе счисления для изображения любого числа используются две цифры, соответственно: 0 и 1. Произвольное число x=anan-1..a1a0,a-1a-2…a-m запишется в двоичной системе счисления как

x = an·2n+an-1·2n-1+…+a1·21+a0·20+a-1·2-1+a-2·2-2+…+a-m·2-m

где ai — двоичные цифры (0 или 1).

Восьмеричная система счисления

В восьмеричной системе счисления базисными цифрами являются цифры от 0 до 7. 8 единиц младшего разряда объединяются в единицу старшего.

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

В шестнадцатеричной системе счисления базисными цифрами являются цифры от 0 до 15 включительно. Для обозначения базисных цифр больше 9 одним символом кроме арабских цифр 0…9 в шестнадцатеричной системе счисления используются буквы латинского алфавита:

1010 = A16      1210 = C16      1410 = E16 1110 = B16      1310 = D16      1510 = F16.

Например, число 17510 в шестнадцатеричной системе счисления запишется как AF16. Действительно,

10·161+15·160=160+15=175

В таблице представлены числа от 0 до 16 в десятичной, двоичной, восьмеричной и шестнадцатеричной системах счисления.

Десятичная Двоичная Восьмеричная Шестнадцатеричная
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

Двоично-восьмеричные и двоично-шестнадцатеричные преобразования

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

Три разряда восьмеричной системы счисления реализуют все возможные комбинации восьмеричных цифр в двоичной системе счисления: от 0 (000) до 7(111). Чтобы преобразовать двоичное число в восьмеричное, нужно объединить двоичные цифры в группы по 3 разряда (триады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от него тоже можно добавить незначащие нули до заполнения всех триад. Затем каждая триада заменяется восьмеричной цифрой.

 Пример: Преобразовать число 1101110,012 в восьмеричную систему счисления.

Объединяем двоичные цифры в триады справа налево. Получаем

001 101 110,0102 = 156,28.

Чтобы перевести число из восьмеричной системы в двоичную, нужно каждую восьмеричную цифру записать ее двоичным кодом:

156,28 = 001 101 110,0102.

 Четыре разряда шестнадцатеричной системы счисления реализуют все возможные комбинации шестнадцатеричных цифр в двоичной системе счисления: от 0 (0000) до F(1111). Чтобы преобразовать двоичное число в шестнадцатеричное, нужно объединить двоичные цифры в группы по 4 разряда (тетрады) в две стороны, начиная от разделителя целой и дробной части. При необходимости слева от исходного числа нужно добавить незначащие нули. Если число содержит дробную часть, то справа от нее тоже нужно добавить незначащие нули до заполнения всех тетрад. Затем каждая тетрада заменяется шестнадцатеричной цифрой.

Пример: Преобразовать число 1101110,112 в шестнадцатеричную систему счисления.

Объединяем двоичные цифры в тетрады справа налево. Получаем

0110 1110,11002 = 6E,C16.

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

6E,C16 = 0110 1110,11002.

Назад: Представление данных и архитектура ЭВМ

prog-cpp.ru

Шестнадцатеричная система счисления - это... Что такое Шестнадцатеричная система счисления?

Системы счисления в культуре Индо-арабская система счисления Восточноазиатские системы счисления Алфавитные системы счисления Другие системы Позиционные системы счисления Смешанные системы счисления Непозиционные системы счисления
АрабскаяИндийскиеТамильскаяБирманская КхмерскаяЛаоскаяМонгольскаяТайская
КитайскаяЯпонскаяСучжоуКорейская ВьетнамскаяСчётные палочки
АбджадияАрмянскаяАриабхатаКириллическая ГреческаяЭфиопскаяЕврейскаяКатапаяди
ВавилонскаяЕгипетскаяЭтрусскаяРимская АттическаяКипуМайская
Десятичная система счисления (10)
2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 20, 60
Нега-позиционная система счисления
Симметричная система счисления
Фибоначчиева система счисления
Единичная (унарная) система счисления
Список систем счисления

Шестнадцатеричная система счисления (шестнадцатеричные числа) — позиционная система счисления по целочисленному основанию 16.

Обычно в качестве шестнадцатеричных цифр используются десятичные цифры от 0 до 9 и латинские буквы от A до F для обозначения цифр от 1010 до 1510, то есть (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F).

Применение

Широко используется в низкоуровневом программировании и компьютерной документации, поскольку в современных компьютерах минимальной единицей памяти является 8-битный байт, значения которого удобно записывать двумя шестнадцатеричными цифрами. Такое использование началось с системы IBM/360, где вся документация использовала шестнадцатеричную систему, в то время как в документации других компьютерных систем того времени (даже с 8-битными символами, как, например, PDP-11 или БЭСМ-6) использовали восьмеричную систему.

В стандарте Юникода номер символа принято записывать в шестнадцатеричном виде, используя не менее 4 цифр (при необходимости — с ведущими нулями).

Шестнадцатеричный цвет — запись трёх компонент цвета (R, G и B) в шестнадцатеричном виде.

Способы записи

В математике

В математике основание системы счисления принято указывать в десятичной системе в нижнем индексе. Например, десятичное число 1443 можно записать как 144310 или как 5A316.

В языках программирования

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

  • В Ада и VHDL такие числа указывают так: «16#5A3#».
  • В Си и языках схожего синтаксиса, например, в Java, используют префикс «0x». Например, «0x5A3».
  • В некоторых ассемблерах используют букву «h», которую ставят после числа. Например, «5A3h». При этом, если число начинается не с десятичной цифры, то для отличия от имён идентификаторов (например, констант) впереди ставится «0» (ноль): «0FFh» (25510)
  • Другие ассемблеры (AT&T, Motorola), а также Паскаль и некоторые версии Бейсика используют префикс «$». Например, «$5A3».
  • Некоторые иные платформы, например ZX Spectrum в своих ассемблерах (MASM, TASM, ALASM, GENS и т. д.) использовали запись #5A3, обычно выровненную до одного или двух байт: #05A3.
  • Другие версии Бейсика используют для указания шестнадцатеричных цифр сочетание «&h». Например, «&h5A3».
  • В Unix-подобных операционных системах (и многих языках программирования, имеющих корни в Unix/linux) непечатные символы при выводе/вводе кодируются как 0xCC, где CC — шестнадцатеричный код символа.

В электронных калькуляторах

Б3-34 и ему подобные используют «-», «L», «C», «Г», «E» « » (space) на их экране.

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

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

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

Например, требуется перевести шестнадцатеричное число 5A3 в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:

5A316 = 3·160+10·161+5·162= 3·1+10·16+5·256 = 3+160+1280 = 144310

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

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

Например:

0101101000112 = 0101 1010 0011 = 5A316

Таблица перевода чисел

0hex = 0dec = 0oct 0 0 0 0
1hex = 1dec = 1oct 0 0 0 1
2hex = 2dec = 2oct 0 0 1 0
3hex = 3dec = 3oct 0 0 1 1
4hex = 4dec = 4oct 0 1 0 0
5hex = 5dec = 5oct 0 1 0 1
6hex = 6dec = 6oct 0 1 1 0
7hex = 7dec = 7oct 0 1 1 1
8hex = 8dec = 10oct 1 0 0 0
9hex = 9dec = 11oct 1 0 0 1
Ahex = 10dec = 12oct 1 0 1 0
Bhex = 11dec = 13oct 1 0 1 1
Chex = 12dec = 14oct 1 1 0 0
Dhex = 13dec = 15oct 1 1 0 1
Ehex = 14dec = 16oct 1 1 1 0
Fhex = 15dec = 17oct 1 1 1 1

См. также

Ссылки

dic.academic.ru

Шестнадцатеричная система счисления — Справочник исследователя программ

Материал из Справочник исследователя программ

Шестнадцатеричная система счисления - один из видов систем счисления. Наиболее широко применяется в информационных технологиях из-за кратности 2 (2^4 = 16)

История появления

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

Основы

Алфавит системы состоит из 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. F = 15. Чтобы отличить эту форму записи от остальных используют:

  • Префикс 0x перед числом
  • Постфикс h после числа
  • Иногда, если первая цифра выражается буквой, то чтобы отличить от имени, ставят постфикс и незначащий ноль, например 0FC5h или проще 0xFC5

Переводы

Чтобы перевести число из 16-ричной системы в 10-ричную, нужно поразрядно прибавлять значение разряда, а результат умножать на 16 или умножать текущий разряд на 16^(n-1), где n - номер разряда справа и прибавлять к основному результату. Например 2Ah = 2*16+A = 32 + 10 = 42 0xF01 = (15*16 + 0)*16 + 1 = 15*16*16 + 1 = 3841

Чтобы совершить обратное действие, поступают как обычно 92d = 5*16 + 12 = 5Ch

Значение

Применяется в программировании, обычно для составления флагов и масок. Также применяется в дизассемблерах, так как один байт можно выразить всего двумя символами (FFh = 255). В некоторых интерпретациях таблицы символов ASCII (так как там всего 256 символов, и можно выразить в видео прямоугольной таблицы).

exelab.ru

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

Шестнадцатеричная система счисления — позиционная система счисления по целочисленному основанию 16. В качестве цифр этой системы счисления обычно используются цифры от 0 до 9 и латинские буквы от A до F. Буквы A, B, C, D, E, F имеют значения 1010, 1110, 1210, 1310, 1410, 1510 соответственно.

Индо-арабская Восточноазиатские Алфавитные Другие
АрабскаяТамильскаяБирманская КхмерскаяЛаосскаяМонгольскаяТайская
КитайскаяЯпонскаяСучжоуКорейская ВьетнамскаяСчётные палочки
АбджадияАрмянскаяАриабхатаКириллическаяГреческая ГрузинскаяЭфиопскаяЕврейскаяАкшара-санкхья
ВавилонскаяЕгипетскаяЭтрусскаяРимскаяДунайская АттическаяКипуМайяскаяЭгейскаяСимволы КППУ
2, 3, 4, 5, 6, 8, 10, 12, 16, 20, 60
Нега-позиционная
Симметричная
Фибоначчиева
Единичная (унарная)

Применение

Широко используется в низкоуровневом программировании и компьютерной документации, поскольку в современных компьютерах минимальной адресуемой единицей памяти является 8-битный байт, значения которого удобно записывать двумя шестнадцатеричными цифрами. Такое использование началось с системы IBM/360, где вся документация использовала шестнадцатеричную систему, в то время как в документации других компьютерных систем того времени (даже с 8-битными символами, как, например, PDP-11 или БЭСМ-6) использовали восьмеричную систему.

В стандарте Юникода номер символа принято записывать в шестнадцатеричном виде, используя не менее 4 цифр (при необходимости — с ведущими нулями).

Шестнадцатеричный цвет — запись трёх компонентов цвета (R, G и B) в шестнадцатеричном виде.

Способы записи

В математике

В математике основание системы счисления принято указывать в десятичной системе в нижнем индексе. Например, десятичное число 1443 можно записать как 144310 или как 5A316.

В языках программирования

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

  • В Ада и VHDL такие числа указывают так: «16#5A3#».
  • В Си и языках схожего синтаксиса, например, в Java, используют префикс «0x». Например, «0x5A3».
  • В некоторых ассемблерах используют букву «h», которую ставят после числа. Например, «5A3h». При этом, если число начинается не с десятичной цифры, то для отличия от имён идентификаторов (например, констант) впереди ставится «0» (ноль): «0FFh» (25510)
  • Другие ассемблеры (AT&T, Motorola), а также Паскаль и некоторые версии Бейсика используют префикс «$». Например, «$5A3».
  • Некоторые иные платформы, например ZX Spectrum в своих ассемблерах (MASM, TASM, ALASM, GENS и т. д.) использовали запись #5A3, обычно выровненную до одного или двух байт: #05A3.
  • Другие версии Бейсика, например Turbo Basic, используют для указания шестнадцатеричных цифр сочетание «&h» или «&H» перед числом. Например, «&h5A3».
  • В Unix-подобных операционных системах (и многих языках программирования, имеющих корни в Unix/linux) непечатные символы при выводе/вводе кодируются как 0xCC, где CC — шестнадцатеричный код символа.

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

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

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

Например, требуется перевести шестнадцатеричное число 3A5 в десятичное. В этом числе 3 цифры. В соответствии с вышеуказанным правилом представим его в виде суммы степеней с основанием 16:

3A516 = 3·162+10·161+5·160== 3·256+10·16+5·1 = 768+160+5 = 93310

При переводе чисел, следует помнить, что в шестнадцатеричной системе счисления: A=10; B=11; C=12; D=13; E=14; F=15.

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

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

Например:

0101101000112 = 0101 1010 0011 = 5A316

Таблица перевода чисел

0hex = 0dec = 0oct 0 0 0 0
1hex = 1dec = 1oct 0 0 0 1
2hex = 2dec = 2oct 0 0 1 0
3hex = 3dec = 3oct 0 0 1 1
4hex = 4dec = 4oct 0 1 0 0
5hex = 5dec = 5oct 0 1 0 1
6hex = 6dec = 6oct 0 1 1 0
7hex = 7dec = 7oct 0 1 1 1
8hex = 8dec = 10oct 1 0 0 0
9hex = 9dec = 11oct 1 0 0 1
Ahex = 10dec = 12oct 1 0 1 0
Bhex = 11dec = 13oct 1 0 1 1
Chex = 12dec = 14oct 1 1 0 0
Dhex = 13dec = 15oct 1 1 0 1
Ehex = 14dec = 16oct 1 1 1 0
Fhex = 15dec = 17oct 1 1 1 1

См. также

Ссылки

ru-wiki.org