Язык Си в примерах/Скалярные типы
Числовые типы
Список числовых типов, определяемых стандартом, следующий (некоторые из этих типов могут иметь более одного стандартного названия; приведены кратчайшие):[1][2]
- целочисленные:
_Bool— логическая величина (0 или 1), не менее одного бита;signed char— байт, не менее 8 бит;short— короткое целое, не менее 16 бит;int— целое, не менее 16 бит;long— длинное целое, не менее 32 бит;long long— длинное длинное целое, не менее 64 бит;
- с плавающей запятой:
float— диапазон: не хуже 10⁻³⁷ … 10⁺³⁷, εмаш < 10⁻⁵;double,long double— диапазон: не хуже 10⁻³⁷ … 10⁺³⁷, εмаш < 10⁻⁹;
- комплексные:
float _Complex,double _Complex,long double _Complex— диапазон и εмаш действительной и мнимой частей совпадают с таковыми для соответствующих чисел с плавающей запятой.
В случае, если используемая система реализует стандарт IEC 60559 на числа с плавающей запятой, типы с плавающей запятой имеют следующие параметры:
float— соответствует представлению «одинарной точности» IEC 60559; диапазон: 1,18 × 10⁻³⁸ … 3,40 × 10⁺³⁸, εмаш = 1.19 × 10⁻⁷;double— «двойная точность» IEC 60559; диапазон: 2,225 × 10⁻³⁰⁸ … 1.80 × 10⁺³⁰⁸, εмаш = 2.22 × 10⁻¹⁶;long double— «четверная точность» IEC 60559; диапазон: 3,36 × 10⁻⁴⁹³² … 1,19 × 10⁺⁴⁹³², εмаш = 1.08 × 10⁻¹⁹.
Кроме того, из целочисленных типов могут быть образованы беззнаковые («неотрицательные») добавлением unsigned перед именем типа. (Исключение: signed char переходит в unsigned char.)
При преобразовании между текстовым (строковым) представлением и этими типами, используются, в частности, следующие указатели преобразований, состоящие из знака %, указателя разрядности, и указателя представления.
- Указатели представлений
-
- Целые числа
-
d,i— десятичная запись со знаком (42);u— десятичная запись без знака (42);o— восьмеричная запись (52);x,X— шестнадцатеричная запись (2a, 2A).
- Числа с плавающей запятой
-
f— десятичная запись (1000000.000000);e,E— десятичная E-запись (1.000000e+06, 1.000000E+06);g— «автоматический» выбор междуeиf;a,A— шестнадцатеричная запись (0xf.4240p4, 0XF.4240P4).
- Указатели разрядности
-
- Целые числа
-
hh— для типовsigned charиunsigned char;h— для типовshortиunsigned short;- (пустая строка) — для типов
intиunsigned int l— для типовlongиunsigned long;ll— для типовlong longиunsigned long.
- Числа с плавающей запятой
-
- (пустая строка) — для типа
float; l— для типаdouble;L— для типаlong double.
- (пустая строка) — для типа
- Примеры
-
%hx— значение типаunsigned shortв шестнадцатеричной записи;%le— значение типаdoubleв десятичной E-записи.
Отметим, что в контексте функций ряда printf, указатель разрядности l не играет никакой роли, если применяется к числу с плавающей запятой. Так, вызовы printf ("%lg", a); и printf ("%g", a); совершенно равнозначны. При передаче таким функциям значений типов signed char, short, и соответствующих беззнаковых, — указатели разрядности hh и h также могут быть опущены.
Примечания
- ↑ WG14 N1570 Committee Draft — April 12, 2011 6.2.5 Types
- ↑ WG14 N1570 Committee Draft — April 12, 2011 Annex E (informative) Implementation limits