Шестнадцатеричная система счисления
| Системы счисления в культуре | |
|---|---|
| Индо-арабская система счисления | |
| Арабская Индийские Тамильская Бирманская |
Кхмерская Лаоская Монгольская Тайская |
| Восточноазиатские системы счисления | |
| Китайская Японская Сучжоу Корейская |
Вьетнамская Счётные палочки |
| Алфавитные системы счисления | |
| Абджадия Армянская Ариабхата Кириллическая |
Греческая Эфиопская Еврейская |
| Другие системы | |
| Вавилонская Египетская Этруская Римская |
Аттическая Кипу Майская |
| Позиционные системы счисления | |
| Десятичная система счисления (10) | |
| 2, 3, 4, 5, 6, 7, 8, 9, 12, 16, 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:
= 3·1+10·16+5·256 = 3+160+1280 = 144310
[править] Перевод чисел из двоичной системы в шестнадцатеричную и наоборот
Для перевода многозначного двоичного числа в шестнадцатеричную систему нужно разбить его на тетрады справа налево и заменить каждую тетраду соответствующей шестнадцатеричной цифрой. Для перевода числа из шестнадцатеричной системы в двоичную нужно заменить каждую его цифру на соответствующую тетраду из нижеприведенной таблицы перевода.
Например:
[править] Таблица перевода чисел
| 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 | |||

