Главная » Delphi » Шестнадцатеричная система

0

имеет, как ясно из ее названия, основание шестнадцать. Для того чтобы получить шестнадцать различных знаков, изобретать ничего нового не стали, а просто использовали те же цифры от 0 до 9 для первых десяти, и заглавные латинские буквы от А до F для один над цатого- шестнадцатого знаков. Таким образом, известное нам число 13ю выразится в шестнадцатеричной системе, как просто Di6. Соответствие шестнадцатерич- ных знаков десятичным числам следует выучить наизусть: А— 10, В— 11, С— 12, D— 13, Е— 14, F— 15. Значения больших чисел вычисляются по обычной формуле, например:

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

На первое время достаточно запомнить верхний ряд, остальное выучится позже само.

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

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

Например, число 59|0, т. е. 0011 10112, будет равно 3Bh.

Точно так же осуществляется и обратный перевод— каждое шестнадцатиричное число просто записывается в виде тетрады. Так, число A2FCI6 выразится, как 1010 0010 1111 11002. Заметьте, что пробелы между тетрадами введены просто для удобства восприятия, подобно пробелам между тройками разрядов (классами) в записи больших десятичных чисел, и никакой иной нагрузки не несут. При записи двоичных чисел в тексте программ, как ассемблерных, так и программ на языках высокого уровня, естественно, эти пробелы ставить запрещается.

Шестнадцатеричный формат записи часто еще обозначают как HEX (НЕХа- decimal), двоичный — как BIN (BJNary), а десятичный — как DEC (DECimal). Так как с помощью матричных шрифтов на компьютерах с текстовыми дисплеями воспроизводить индексы было невозможно, то вместо того, чтобы обозначать основания системы цифрой справа внизу, их стали обозначать буквами: "В" (или "Ь")— двоичная система, "Н" (или "h")— шестнадцате- ричная, "D" (или "d") — десятичная. Отсутствие буквы также означает десятичную систему:

13= 13d = 00001101b = ODh.

Такая запись принята, например, в языке ассемблера для процессоров Intel. Популярность языка С внесла в это дело некоторый разнобой: там десятичная система обозначается буквой "d" (или никак), двоичная буквой "Ь", а вот шестнадцатеричная буквой "х", причем запись во всех случаях предваряется нулем (чтобы не путать запись числа с идентификаторами переменных, которые всегда начинаются с буквы):

13 = 0dl3 = 0Ь00001101 = 0x0D.

В языке Pascal принято, как известно, следующее представление НЕХ- формата: $0D. Обратите внимание, что запись в НЕХ-формате обычно ведется в двухразрядном виде, даже сели число имеет всего один значащий разряд, как в нашем случае, то в старшем пишется 0. то же самое относится и к двоичной записи, которая дополняется нулями до восьми разрядок. Кроме перечисленных, в ходу еще гак называемый двоично-десятичный формат BCD (Binary-Coded Decimal).

Источник: Ревнч Ю. В.  Нестандартные приемы программирования на Delphi. — СПб.: БХВ-Петербург, 2005. — 560 е.: ил.

По теме:

  • Комментарии