В языке C (C++) есть следующие типы данных для представления целых чисел.
Название |
Размер в байтах | Минимальное значение | Максимальное значение | Комментарий |
char |
1 | 0 (-128) | 255 (127) | Знаковость не гарантируется |
int | 4 | −2147483648 | 2147483647 | |
short (int) | 2 | -32768 | 32767 | |
long (int) | 4 | −2147483648 | 2147483647 | На 64-битной платформе как long long |
long long (int) | 8 | ≈ -9*1018 | ≈ 9*1018 |
К любому из этих типов может быть добавлен спецификатор signed или unsigned, гарантирующий, что переменная будет иметь или не иметь знак. Нижняя граница любого unsigned типа данных -- число 0.
Основным типом данных для работы с целыми числами является тип int, его рекомендуется использовать
Для определения размера типа в байтах можно использовать операцию sizeof.
a = sizeof(int);
b = sizeof(long int);
c = sizeof(unsigned long);
d = sizeof(short);
Отметим также, что константы, в том числе восьмеричные и шестнадцатеричные, могут иметь модификатор unsigned. Это достигается указанием префикса u или U после константы, константа без этого префикса считается знаковой.
0xA8C /* signed int */;
01786l /* signed long int */;
0xF7u /* unsigned int */;
Для целочисленных переменных применимы следующие операции:
Операция | Описание операции |
+ | Сложение |
- | Вычитание |
* | Умножение |
/ | Деление |
% | Остаток от деления |
При этом для целых чисел и целочисленных переменных результатом операции деления является целочисленное деление, то есть целое число. Например, при делении 10 / 3 результатом будет 3.
Надо быть осторожным при делении отрицательного числа или при делении на отрицательное число, результат деления округляется в сторону нуля (а не в меньшую сторону, как это принято в математике).
Для вывода значения типа можно использовать функцию printf с форматной строкой "%d". Например:
printf("%d", a);
Для вывода нескольких переменных можно указать в качестве первого параметра функции scanf строку, содержащую несколько выражений вида %d, сами значения выводимых переменных указываются после через запятые. Например, для вывода двух переменных через пробел можно использовать вызов:
printf("%d %d", a, b);
Обратите внимание на пробел между "%d %d", если его не поставить, выводимые значения сольются вместе.
Если в форматной строке указать последовательность "\n", то вместо нее будет осуществлен переход на новую строку.
Для считывания переменной используется функция scanf, используемая аналогичным способом:
scanf("%d", &a);
Обратите внимание на знак "&" (амперсанд) перед именем переменной - он указывает на то, что функции передается не значение переменной, а адрес этой переменной, чтобы функция scanf смогла изменить данную переменную. В языке С необходимо передавать указатели на переменные в функции, которые будут модифицировать эти переменные.