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

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
Системы счисления в культуре
Индо-арабская система счисления
Арабская
Индийские
Тамильская
Бирманская
Кхмерская
Лаоская
Монгольская
Тайская
Восточноазиатские системы счисления
Китайская
Японская
Сучжоу
Корейская
Вьетнамская
Счётные палочки
Алфавитные системы счисления
Абджадия
Армянская
Ариабхата
Кириллическая
Греческая
Эфиопская
Еврейская
Другие системы
Вавилонская
Египетская
Этруская
Римская
Аттическая
Кипу
Майская
Позиционные системы счисления
Десятичная система счисления (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:

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

[править] См. также

[править] Ссылки

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках