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


Байт, машинное слово - часть 3


В результате получим константу 0x0200. Наоборот, если в тетраде установлены в 1 значения всех битов, то ей соответствует цифра F. Тогда машинное слово со всеми единичными разрядами выглядит как 0xFFFF, а с единственным, установленным в 0 девятым разрядом -0xFDFF.

Аналогичным образом могут использоваться восьмеричные константы. В Си любая константа, содержащая цифры от 0 до 7 и начинающаяся с 0, считается восьмеричной, например 0177556.

.


7 Байт 0 Значение в 10-й системе счисления
____________________ 0 2 3 6
0 1 0 0 1 1 0 1 2 + 2 + 2 + 2 = 1+4+8+64 = 77
____________________

.


Восьмеричная константа 0 1 0 0 1 1 0 1
1 1 5 = 0115

.


Шестнадцатеричная константа 0 1 0 0 1 1 0 1
4 13 = 0x4D

.


Байт 1 Байт 0
_______________________________________
0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0
_______________________________________
0 6 6 7 1 4 = 066714
________________________________________
0 1 1 0 1 1 0 1 1 1 0 0 1 1 0 0
________________________________________
6 13 12 12 = 0x6DCC

Получить значение восьмеричной или шестнадцатеричной константы в десятичной системе можно также путем умножения цифр числа на веса разрядов -последовательные степени 8 или 16:

.


0 1 2 3
0x6DCC =12(C)*16 +12(C)*16 +13(D)*16 +6*16 = 12 + 12*16 + 13*256 + 6*4096

При обнаружении в тексте программы константы транслятор может самостоятельно определить ее размерность (стандартное или двойное машинное слово), исходя из количества значащих цифр. Кроме того, десятичные константы он считает всегда целыми со знаком. Программист может явно указать, что данная константа является "длинной" (символы L,l) или беззнаковой (символы U,u):

.


200 // Целое стандартной размерности
1000000 // Длинная константа
200l, 200L , 0xB8L // Длинные константы
123u, 60000U // Беззнаковые константы
077777777UL // Длинная беззнаковая константа




- Начало -  - Назад -  - Вперед -



Книжный магазин