Для определения данных целого типа используются различные ключевые слова, которые определяют диапазон значений и размер области памяти, выделяемой под переменные (табл. 5).
Таблица 5
Тип
|
Размер памяти в байтах
|
Диапазон значений
|
Название типа
|
char
|
1
|
от –128 до 127
|
Символьный
|
int
|
Для IBM XT,AT,SX,DX 2
|
|
Целый
|
short
|
2
|
от -32768 до 32767
|
Короткий целый
|
long
|
4
|
от -2 147 483 648 до 2 147 483 647
|
Длинный целый
|
unsigned сhar
|
1
|
oт 0 до 255
|
Символьный без знака
|
unsigned int
|
Для IBM XT,AT,SX,DX 2
|
|
Целый без знака
|
unsigned short
|
2
|
от 0 до 65535
|
Короткий целый без знака
|
unsigned long
|
4
|
от 0 до 4 294 967 295
|
Длинный целый без знака
|
Отметим, что ключевые слова signed и unsigned необязательны. Они указывают, как интерпретируется нулевой бит объявляемой переменной, т.е., если указано ключевое слово unsigned, то нулевой бит интерпретируется как часть числа, в противном случае нулевой бит интерпретируется как знаковый. В случае отсутствия ключевого слова unsigned целая переменная считается знаковой. В том случае, если спецификатор типа состоит из ключевого типа signed или unsigned и далее следует идентификатор переменной, то она будет рассматриваться как переменная типа int. Целые без знака, описываемые как unsigned, подчиняются правилам арифметики по модулю 2n, где n - число бит в их представлении.
Например:
unsigned int n;
unsigned int b; int c; (подразумевается signed int c );
unsigned d; (подразумевается unsigned int d );
signed f; (подразумевается signed int f ).
Следует сделать следующее замечание: в языке С++ не определено представление в памяти и диапазон значений для идентификаторов с модификаторами типа int и unsigned int. Размер памяти для переменной с модификатором типа signed int определяется длиной машинного слова, которое имеет различный размер на разных машинах. Так, на 16-ти разрядных машинах размер слова равен 2-м байтам, на 32-х разрядных машинах соответственно 4-м байтам, т.е. тип int эквивалентен типам short int, или long int в зависимости от архитектуры используемой ПЭВМ. Таким образом, одна и та же программа может правильно работать на одном компьютере и неправильно на другом. Для определения длины памяти занимаемой переменной можно использовать операцию sizeof языка С++, возвращающую значение длины указанного модификатора-типа.
Например:
a = sizeof(int); b = sizeof(long int);c = sizeof(unsigned long);
Достарыңызбен бөлісу: |