Страница 2 из 21
Приложение А. Двоичные и шестнадцатиричные числа и адресация памяти.
Основной единицей хранения данных в компьютере является бит. В большинстве микрокомпьютеров восемь битов объединены в байт, при этом каждый бит байта может быть установлен или "включен" (= 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
|