Язык программирования Форт



         

Операции с байтами


Иногда говорят о наиболее.- наименее значащих разрядах десятичного числа. Например, в числе 456 наиболее значащий разряд -- 4, наименее значащий 6. Таким образом, 456 -- это 400 +50+6, где 4 указывает, сколько в числе содержится единиц самого старшего разряда, т.е. сотен. Точно так же мы говорим о наиболее и наименее значащих разрядах двоичного числа. В числе 10110 наименее значащий разряд -- это самый правый разряд (0), а наиболее значащий -- первый слева (1). Рассматривая байты, мы поступаем так же : разбиваем 16-разрядное число на два байта (числа по 8 разрядов) -- более значащий (старший) и менее значащий (младший). В шестнадцатеричном числе 10А2 старший байт равен 10, младший -- А2. Если число десятичное, то выделение байтов производится не так просто. Для чисел больше 255 значение старшего байта можно найти из табл. 3.2.

Таблица 3.2. Старший и младший байты чисел

Десятич. Шестнадца- Старший Младший число терич.экв. байт байт Дес. Шест. Дес. Шест . 001 0001 000 00 001 01 255 00FF 000 00 255 FF 256 0100 001 01 000 00 257 0101 001 01 001 01 511 01FF 001 01 255 FF 512 0200 002 02 000 00 513 0201 002 02 001 01 767 02FF 002 02 255 FF 768 0300 003 03 000 00 769 0301 003 03 001 01

Число 255, или FF, -- это наибольшее число, которое может находиться в младшем байте. Если число больше 255, то в старший байт нужно добавить 1. Поэтому число 256 имеет 1 в старшем байте и 0 -- в младшем. Теперь заметим, что число 512, которое получается добавлением еще одной 1 к старшему байту, в 2 раза больше 256, а 768 в 3 раза больше 256. Другими словами, старший байт увеличивается на 1 каждый раз, когда число увеличивается на 256.

Теперь рассмотрим два слова С@ и С! для операций с отдельными байтами. Слово С@ похоже на слово @, но оно извлекает значение только одного байта (буква С в имени происходит от слова character, т.е. символ, потому что любой символ ASCII представляется одним байтом). После С@ старший байт в стеке должен быть равен 0. Понимаете ли вы, почему ?

Слово С! подобно !, но оно производит запись только младшего байта числа, находящегося в стеке.


Содержание  Назад  Вперед