Шестнадцатеричная система счисления: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
Поправил ошибку в таблице
Строка 56: Строка 56:
| style="background:black; width:2px" | || style="width:45px"|'''0'''<sub>hex</sub> || = || style="width:45px"|0<sub>[[Десятичная система счисления|dec]]</sub> || = || style="width:45px"|0<sub>[[Восьмеричная система счисления|oct]]</sub> ||style="background:black; width:2px" | || style="background:white;width:24px"|0|| style="background:white;width:24px"|0|| style="background:white;width:24px"|0|| style="background:white;width:24px"|0 ||style="background:black; width:2px" |
| style="background:black; width:2px" | || style="width:45px"|'''0'''<sub>hex</sub> || = || style="width:45px"|0<sub>[[Десятичная система счисления|dec]]</sub> || = || style="width:45px"|0<sub>[[Восьмеричная система счисления|oct]]</sub> ||style="background:black; width:2px" | || style="background:white;width:24px"|0|| style="background:white;width:24px"|0|| style="background:white;width:24px"|0|| style="background:white;width:24px"|0 ||style="background:black; width:2px" |
|-style="background:#E3EDE9; color:black; height:24px"
|-style="background:#E3EDE9; color:black; height:24px"
| style="background:black; width:2px" | || '''1'''<sub>hex</sub> || = || о
| style="background:black; width:2px" | || '''1'''<sub>hex</sub> || = || 1<sub>dec</sub>
| = || 1<sub>oct</sub> ||style="background:black; width:2px" | || style="background:white;width:24px"|0|| style="background:white;width:24px"|0|| style="background:white;width:24px"|0|| style="background:red;width:24px"|1||style="background:black; width:2px" |
| = || 1<sub>oct</sub> ||style="background:black; width:2px" | || style="background:white;width:24px"|0|| style="background:white;width:24px"|0|| style="background:white;width:24px"|0|| style="background:red;width:24px"|1||style="background:black; width:2px" |
|-style="background:#E3EDE9; color:black; height:24px"
|-style="background:#E3EDE9; color:black; height:24px"

Версия от 07:42, 7 октября 2018

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

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

Применение

Широко используется в низкоуровневом программировании и компьютерной документации, поскольку в современных компьютерах минимальной адресуемой единицей памяти является 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

См. также

Ссылки