Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Целые числа

Для представления целых чисел в языке C++ существует несколь­ко типов, например, short int (”короткое” целое), int (целое) и long int (“длинное” целое). Они отличаются друг от друга диапазо­ном возможных значений (см. табл. 1). В словосочетаниях short int и long int описатель int можно опустить. Каждый из целочисленных типов может быть знаковым (signed) или беззнаковым (unsigned). По умолчанию, тип целых величин – знако­вый. Если перед определением типа стоит ключевое слово unsigned, то тип целого числа беззнаковый. Так, для того, чтобы объявить переменную x как короткое целое знаковое число, нужно записать:

short x;

а чтобы указать, что оно короткое беззнаковое –

unsigned short x;

Переменная без знака может принимать только неотрицательные значения, переменная со знаком – как неотрицательные, так и отрицательные значения.

Тип int совпадает либо с short, либо с long. В современных аппаратно-операционных средах int можно принимать за полный аналог long, хотя некоторое время назад, в эпоху распространения 16-разрядной аппаратной базы, int совпадал с short.

Целое число может быть непосредственно записано в программе в виде константы. Запись чисел соответствует общепринятой нотации. Примеры целых констант: 0, 125, -37. По умолчанию целые константы принадлежат к типу int.

Кроме стандартной десятичной записи, числа можно записывать в восьмеричной или шестнадцатеричной системе счисления. Признаком восьмеричной системы счисления является цифра 0 в начале числа, признаком шестнадцатеричной – 0х или 0Х перед числом. Для записи шестнадцатеричных цифр используются большие или маленькие латинские буквы от А до F.

const int x = 240;

const int y = 0360;

const int z = 0xF0;

Отрицательные числа предваряются знаком “минус” (-).

Для целых чисел определены стандартные арифметические опе­рации сложения (+), вычитания (-), умножения (*), деления (/), нахожде­ние остатка от деления (%), изменение знака (-). Результатом этих опера­ций также является целое число. При делении остаток отбрасывается.

Кроме стандартных арифметических операций, для целых чисел определен набор побитовых (или поразрядных) операций. В них целое число рассматривается как строка битов (нулей и единиц при записи числа в двоичной системе счисления или разрядов машинного представления числа).

К этим операциям относятся поразрядные (побитовые) операции И (&), ИЛИ (|), ИСКЛЮЧАЮЩЕЕ ИЛИ (^) и НЕ (отрицание) (~), а также поразрядные сдвиги. Поразрядные операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ и НЕ выполняют операцию над соответствующими отдельными битами своих операндов, их результаты приведены в таблице 2.

Таблица 2. Результаты выполнения побитовых операций

p q p & q p | q p^q ~p
           
           
           
           

Операции сдвига, обозначаемые << и >>, сдвигают двоичное представление левого операн­да в “указываемую” сторону на количество битов, соответствующее значению правого операнда.

При сдвиге влево число дополняется нулями справа. При сдвиге вправо значение, которым дополняется число, определяется тем, знаковое оно или беззнаковое. Беззнаковые числа при сдвиге вправо всегда допол­няются нулями. Если же число знаковое, то для дополнения используется значение самого левого бита числа. Это объясняется тем, что во внутреннем представлении целых чисел в компьютере самый левый бит как раз и является знаком: 0 означает плюс, 1 означает минус.

Рассмотренные арифметические и поразрядные операции выполняются над целыми числами и в результате дают целое число. В отличие от них операции сравнения выполняются над целыми числами, но в результате дают логическое значение истина (true) или ложь (false).

Для целых чисел определены операции сравнения: равенства (= =), неравенства (!=), больше (>), меньше (<), больше или равно (>=) и меньше или равно (<=).

В языке C++ допустимо смешивать различные целые типы в выражении. Общее правило преобразования целых типов состоит в том, что более короткий тип при вычислениях преобразу­ется к более длинному. Только при выполнении присваивания более длинный тип может преобразовываться к более короткому. Такое преобразование не всегда безопасно, при нем могут потеряться значащие цифры. Обычно компиляторы выдают предупреждение или ошибку, встречая такое преобразование.

<== предыдущая лекция | следующая лекция ==>
Библиотека стандартных функций | Логические значения
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 378; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.