предшествующей значению константы 32768. Поскольку
предшествующей значению константы 32768. Поскольку значение 32768 слишком велико для типа
short, компилятор языка Си представляет его типом
long и, следовательно, константа -32768 будет иметь тип
long. Значение -32768 может быть представлено типом
short только путем явного приведения его к типу
short с помощью выражения (
short) (?32768). Информация при этом не будет потеряна, поскольку значение -32768 может быть представлено двумя байтами памяти.
Восьмеричные и шестнадцатеричные
константы могут иметь знаковый или беззнаковый тип, в зависимости от их значения (см. раздел 1.2.1). Однако метод присвоения компилятором языка Си типов восьмеричным и шестнадцатеричным константам гарантирует, что в выражениях они будут вести себя как беззнаковые целые (поскольку их знаковый бит всегда равен нулю).
СП ТС
позволяет явно присваивать константам беззнаковый тип с помощью суффикса
u.
Для представления значений с плавающей точкой используется стандартный формат IEEE (Institute of Electrical and Electronics Engineers, Inc.). Значения типа
float
занимают 4 байта, состоящих из бита знака, 7-битовой двоичной экспоненты и 24-битовой мантиссы. Мантисса представляет число в интервале от 1.0 до 2.0. Поскольку старший бит мантиссы всегда равен единице, он не хранится в памяти. Это представление дает область значений приблизительно от 3.4Е-38 до 3.4Е+38.
Значения типа
double занимают 8 байтов. Их формат аналогичен формату
float, за исключением того, что экспонента занимает 11 битов, а мантисса 52 бита плюс неявный старший бит, единичный. Это дает область значений приблизительно от 1.7Е-308 до 1.7Е+308.
Значения типа
long double
занимают 80 битов; их область значений—от 3.4Е-4932 до 1.1Е+4932. Формат их аналогичен формату
double, однако, мантисса длиннее на 16 битов.
Содержание Назад Вперед