Справочник языка Cи


         

Целые константы - часть 2


или, если размер этого типа также оказывается недостаточен, типом unsigned long. В таблице 1.5 показаны диапазоны значений констант различных типов для компьютера, на котором тип int

имеет длину 16 битов и тип long имеет длину 32 бита.

Таблица1.5.

Десятичные константы

Восьмеричные константы

Шестнадцатеричные константы

Тип

0—32767

0—077777

0х0—0x7FFF

int

0100000—0177777

0х8000—0xFFFF

unsigned int

32767—2147483647

02000001—017777777777

0х10000—0x7FFFFFFF

long

020000000000—030000000000

0х80000000—0xFFFFFFFF

unsigned long

Из рассмотренных правил следует, что при преобразовании восьмеричных и шестнадцатеричных констант к более длинным типам не производится расширения знака (поскольку старший, знаковый бит всегда равен нулю).

Программист может явно определить для любой целой константы тип long, записав букву "l" или "L"

в конец константы. Это позволяет расширить нижнюю границу диапазона значений констант любого типа до нуля. Например, константа со значением 10 будет иметь тип long только в том случае, если она будет записана с суффиксом L, т. е. 10L. В таблице 1.6 приведены примеры длинных целых констант.

Таблица 1.6.

Десятичные константы

Восьмеричные константы

Шестнадцатеричные константы

12L

012L

0xaL или 0xAL

0l

0115l

0х4fl или 0x4Fl

В СП ТС

реализован также суффикс U (или u), означающий, что константа имеет тип unsigned. Можно использовать одновременно оба суффикса — L и U — для одной и той же константы. Кроме того, в СП ТС константе присваивается тип unsigned long, если ее значение превышает 65535, независимо от наличия или отсутствия суффикса U (в СП MSC в этом случае константе был бы присвоен тип long).




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