Справочник программиста на персональном компьютере фирмы IBM. Приложения - Двоичные и шестнадцатиричные числа и адресация памяти
ОГЛАВЛЕНИЕ
Приложение А. Двоичные и шестнадцатиричные числа и адресация памяти.
Основной единицей хранения данных в компьютере является бит. В
большинстве микрокомпьютеров восемь битов объединены в байт, при
этом каждый бит байта может быть установлен или "включен" (= 1)
или сброшен или "выключен" (= 0), допуская 256 разных вариантов.
Таким образом, в одном байте можно представить 256 разных симво-
лов (расширенный набор кодов ASCII) или целое число в диапазоне
от 0 до 255. Хотя мы привыкли записывать эти числа в десятичной
форме, они могут записываться также в двоичной или шестнадцати-
ричной форме - их значения при этом не изменяются, а программы
могут с одинаковой легкостью читать эти значения как в той, так и
в другой форме. Вместо того, чтобы говорить, что в одном байте
могут храниться числа от 0 до 255, можно сказать, что могут хра-
ниться двоичные числа от 00000000 до 11111111 или шестнадцатирич-
ные числа от 00 до FF. Поскольку можно перепутать разные формы,
то двоичные и шестнадцатиричные числа отмечаются специальным
образом. В языке ассемблера за двоичными числами следует буква B,
а за шестнадцатиричными числами - буква H, например, 11111111B
или FFH. Бейсик фирмы Microsoft предваряет шестнадцатиричные
числа символами &H, например &FFH; к сожалению, он не распознает
числа в двоичной форме.
Двоичные числа:
Когда содержимое байта представляется в двоичной форме, то
требуется 8 цифр. Каждая цифра соответствует одному биту, которые
нумеруются от 0 до 7. Как и в десятичных числах цифры распола-
гаются справа налево, от младших к старшим разрядам. В отличии от
десятичных чисел, в которых каждая последующая цифра весит в 10
раз больше своей соседки справа, двоичные цифры имеют только
вдвое больший вес. Таким образом, самая правая цифра считает
единицы, вторая - двойки, третья - четверки и т.д., до значения
128 для восьмой цифры байта. Это означает, что если первая цифра
равна 1, то прибавление к ней 1 приводит к тому, что она станет
0, а 1 будет перенесена во вторую цифру, как для десятичных чисел
9 + 1 = 0 и перенос единицы в следующий разряд. Вот как числа
первого десятка представляются в двоичной форме:
00000000 0
00000001 1
00000010 2
00000011 3
00000100 4
00000101 5
00000110 6
00000111 7
00001000 8
00001001 9
00001010 10
В этой последовательности большинство нулей слева необязатель-
ны, т.е. эту последовательность можно записать и в виде 0, 1, 10,
11, 100, 101 и т.д. Нули включены только для того, чтобы напом-
нить Вам, что байт составляется восемью цифрами, соответствующими
битам. В то время как набор нулей и единиц может быть несколько
утомительным, Вы можете легче работать с двоичными числами, если
будете представлять их себе следующим образом:
бит 7 6 5 4 3 2 1 0
значение 128 64 32 16 8 4 2 1
Когда Вы встречаете двоичное число 10000001, то установлены биты
7 и 0. Бит 7 соответствует 128, а бит 0 - 1, поэтому десятичное
значение байта равно 129. Если этот байт представляет символ, то
он соответствует коду ASCII 129, который представляет букву u с
умляутом (в альтернативной кодировке ГОСТа - букву Б). Наоборот,
чтобы определить цепочку битов для буквы A, которая равна ASCII