- •Введение
- •1. Этапы и проблемы решения задач с использованием компьютера
- •Алфавит языка
- •Ключевые слова
- •Идентификаторы
- •Знаки операций
- •Константы
- •Комментарии
- •2.3. Структура и основные элементы программы
- •2.4. Трансляция программ и их выполнение
- •3. Стандартные (базовые) типы данных, операции и выражения
- •3.1. Типы данных, переменные и константы Понятие типов данных
- •Классификация простых предопределенных типов данных
- •Переменные, константы
- •3.2. Целочисленные типы данных
- •3.3. Вещественные типы данных
- •3.4. Логический тип данных
- •3.5. Символьный тип данных
- •3.6. Операции и выражения
- •Преобразования типов данных
- •Операция присваивания
- •Арифметические операции
- •Операции отношения
- •Логические операции
- •Поразрядные (битовые) операции
- •Операции составного присваивания
- •Условная операция
- •Операция sizeof
- •Приоритеты рассмотренных операций
- •3.7. Ввод и вывод простых типов данных
- •Вывод текстовых строк
- •Ввод/вывод арифметических типов данных
- •Форматирование ввода / вывода
- •4.1. Идеи структурного программирования
- •Условная инструкция (if)
- •Инструкция множественного выбора (switch)
- •Цикл с предусловием (while)
- •Цикл с постусловием (do while)
- •Итерационный цикл (for)
- •Инструкции перехода
- •5. Приемы программирования циклов
- •5.1. Рекуррентные вычисления
- •5.2. Инвариант цикла
- •6. Массивы
- •6.1. Понятие массива
- •6.2. Объявление массивов Объявление одномерных массивов
- •Объявление многомерных массивов
- •6.3. Ввод-вывод массивов
- •Вывод массивов
- •Ввод массивов
- •6.4. Текстовые строки как массивы символов
- •Определение текстовой строки
- •Ввод текстовых строк с клавиатуры
- •Обработка текстовых строк
- •Массивы текстовых строк
- •7. Разработка программ при работе с массивами
3.2. Целочисленные типы данных
Размер типа intне определяется стандартом, а зависит от компьютера и компилятора. Для 16-разрядного процессора под величины этого типа отводится 2 байта – в этом случае диапазон возможных значений составляет -32 768 ... 32 767 (2 в степени 16 различных значений). Для 32-разрядного - 4 байта – диапазон значений -2 147 483 648 ... 2 147 483 647 (2 в степени 32 различных значений).
Спецификатор shortперед именем типа указывает компилятору, что под число требуется отвести 2 байта независимо от разрядности процессора.
Спецификатор longозначает, что целая величина будет занимать 4 байта. Таким образом, на 16-разрядном компьютере эквивалентыintиshort int, а на 32-разрядном —intиlong int.
При определении переменных вместо short int илиlong intможно использовать более короткие обозначения:short илиlong соответственно:
short a;
long b;
Использование типов int,short int(short),long int(long) подразумевает представление целых чисел со знаком, поэтому спецификаторsignedможно не указывать.
Внутреннее представление величины целого типа — целое число в двоичном коде. Например, число +22типаshort int(short) представляются в памяти так:
Номера разрядов: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значения разрядов: 0 0 0 0 0 0 0 0 0 0 0 1 0 1 1 0 ,
а отрицательное число -22выглядит следующим образом:
Номера разрядов: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значения разрядов: 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0
При использовании спецификатора signed(или при его отсутствии) старший бит числа (в данном случае – разряд с номером 15) интерпретируется как знаковый (О — положительное число, 1 — отрицательное).
Спецификатор unsignedпозволяет представлять только положительные числа, при этом старший разряд рассматривается как часть кода числа. Таким образом, диапазон значений типаintзависит от спецификаторов. Диапазоны значений величин целого типа со спецификаторомunsignedвыглядят так:
unsigned int (16-разрядного процессор): от 0 до 65 535;
unsigned int (32-разрядного процессор): от 0 до 4 294 967 295;
unsigned short int илиunsigned short (не зависимо от процессора): от 0 до 65 535.
По умолчанию все целочисленные типы считаются знаковыми, то есть спецификатор signedможно опускать.
Целые константы литералы можно задавать в трех форматах: в десятичном, восьмеричном и в шестнадцатеричном.
В десятичном формате целые значения записываются в обычном виде:
1345 +34 -245
В восьмеричном формате сначала записывается 0 (нуль), а за ним восьмеричные разряды самого числа:
011 07345 -0456
В шестнадцатеричном формате значащим разрядам числа должны предшествовать символы 0xили 0X:
0x12B5 -0xAF2B 0X1FF02
Как уже говорилось ранее, константам, встречающимся в программе, приписывается тот или иной тип в соответствии с их видом. Если этот тип по каким-либо причинам не устраивает программиста, он может явно указать требуемый тип с помощью суффиксов L,l(long) иu,U(unsigned). Например, константа32Lбудет иметь типlongи занимать 4 байта. Можно использовать суффиксыLиUодновременно, например,Ox22ULили05LU.