Информатика и технология программирования


           

машинное слово 0000000001001001 имеет значение


.

R0 * 1 + R1 * 2 + R2 * 4 + ... + R15 * 32768 или

.

0 1 16
R0 * 2 + R1 * 2 + ... + R15 * 2



Например, машинное слово 0000000001001001 имеет значение 1+8+128 = 137. На практике вместо двоичной системы используются восьмеричная и шестнадцатеричная системы счисления. Это объясняется тем, что одна восьмеричная цифра принимает значения от 0 до 7 и занимает 3 двоичных разряда. Аналогично шестнадцатеричная цифра принимает значения от 0 до 15, что соответствует 4-м двоичным разрядам (
ТЕТРАДА ).

При необходимости представить машинное слово в его "натуральном" виде как последовательность двоичных разрядов лучше всего пользоваться шестнадцатеричными константами. Поскольку обычных цифр для представления значений от 0 до 15 не хватает, то для недостающих используются прописные или строчные латинские буквы:

.

A - 10, D - 13,
B - 11, E - 14,
C - 12, F - 15.

Сама константа содержит ряд шестнадцатеричных цифр, предваренный последовательностью "0x", например:

.

0x1234, 0x1B8C, 0xB8000000, 0xFFFF



Перевести эти константы в двоичную систему очень просто. Достаточно представить каждую цифру в виде четырех двоичных разрядов, задающих ее значение в двоичной системе:

.

0x1B8C = 0001 1011 1000 1100
1 B 8 C

И наоборот, значение любого машинного слова из двоичного представления легко перевести в шестнадцатеричную константу, разбив на тетрады и заменив значение каждой из них соответствующей цифрой 0..9A..F.





Но на самом деле программиста обычно не интересует представление всего слова в виде последовательности битов. По условию поставленной задачи ему требуется иметь установленными в 0 или 1 отдельные биты. Это также очень просто сделать, если считать номера разрядов справа налево по 4 в каждой цифре, начиная с 0. Например, если в константе требуется установить в 1 девятым разряд, то он будет находиться в третьей справа цифре, содержащей разряды с номерами 8..11. Все остальные цифры будут нулевыми. Значение же этой цифры с установленным девятым разрядом будет равно 2.

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