short
|
in t
|
От 0 ДО 65 535
|
short int
|
|
|
От-3 2
|
768 до 32 767
|
unsigned
|
long
|
int
|
От 0 до 4 294 967 295
|
long int
|
|
|
От -2 147 483 648 до 2 147 483 647
|
unsigned
|
long
|
long
|
От0 до
|
18 446 744 073 709 551615
|
long long
|
|
|
От -9 223 372 036 854 775 808 до 9 223 372 036 854 775 807
|
int (16 бит)
|
|
От-3 2 768 до 32 767
|
int (32 бита)
|
|
От - 2 147 483 648 до 2 147 483 647
|
unsigned
|
int (16 бит)
|
От0 до
|
65 535
|
unsigned
|
int (32 бита)
|
От0 до
|
4 294 967 295
|
float
|
|
|
От 1.2е-38 до 3.4е38
|
double
|
|
|
От 2.2е-308 до 1.8е308
|
Более подробная информация о важнейших типах приведена в следующих разделах.
Использование типа bool для хранения логических значений
Язык C++ предоставляет тип, специально созданный для хранения логических значе-ний tru e или fa ls e , оба из которых являются зарезервированными ключевыми словами C++. Этот тип особенно полезен при хранении параметров и флагов, которые могут быть установлены или сброшены, существовать или отсутствовать, могут быть доступными или недоступными.
Типичное объявление инициализированной логической переменной имеет следующий вид:
bool AlwaysOnTop = false;
Выражение, обрабатывающее логический тип, выглядит так:
Популярные типы переменных, поддерживаемые компилятором C++
|
5 5
|
bool DeleteFile = (UserSelection == "yes");
истино, только если UserSelection содержит "yes",
в противном случае ложно
Использование типа char для хранения символьных значений
Тип c h a r используется для хранения одного символа. Типичное объявление показано ниже.
char Userlnput = 1Y '; // инициализированный символ 'Y'
Обратите внимание, что память состоит из битов и байтов. Биты могут содержать зна чения 0 или 1, а байты могут хранить числовые представления, используя эти биты. Таким образом, работая или присваивая символьные данные, как показано в примере, компиля тор преобразует символы в числовое представление, которое может быть помещено в па мять. Числовое представление латинских символов A-Z, a-z, чисел 0-9, некоторых специ альных клавиш (например, ) и специальных символов (таких, как возврат на один символ) было стандартизировано в стандартный американский код обмена информацией (American Standard Code for Information Interchange), называемый также ASCII.
Вы можете открыть таблицу в приложении Д, “Коды ASCII”, и увидеть, что символ ‘Y ’, присвоенный переменный U s e r ln p u t, — это десятичное значение 89, согласно стан дарту ASCII. Таким образом, компилятор просто сохраняет значение 89 в области памяти, зарезервированной для переменной U s e r ln p u t.
Концепция знаковых и беззнаковых целых чисел
Знак (sign) может означать положительное или отрицательное число. Все числа, с ко торыми работает компьютер, хранятся в памяти, как биты и байты. Область памяти раз мером в 1 байт содержит 8 битов. Каждый бит может содержать значение 0 или I (т.е. хра нить одно из этих двух значений максимум). Таким образом, область памяти размером в
байт может содержать максимум 2 в степени 8 значений, т.е. 256 уникальных значений. Аналогично область памяти размером 16 битов может содержать 2 в степени 16 значений, т.е. 65 536 уникальных значений.
Если эти значения должны быть беззнаковыми, чтобы содержать только положитель ные значения, то один байт мог бы содержать целочисленные значения в пределах от 0 до 255, а два байта будут содержать значения в пределах от 0 до 65 535 соответственно.
Загляните в табл. 3.1 и обратите внимание на то, что тип u n s ig n e d s h o r t i n t , который поддерживает этот диапазон, занимает в памяти 16 бит. Таким образом, положительные значения в битах и байтах очень просто представить схематически (рис. 3.1).
Бит 15 ...................... Бит О
11111111111111 =65535
v----------------------v--------------------- '
16 битов, хранящих значение
РИС. 3.1. Организация битов в 16-разрядном
коротком беззнаковом целом числе
56 ЗАНЯТИЕ 3. Использование переменных, объявление констант
Но как же представить в этой области отрицательные числа? Один из способов — “по жертвовать” для знака одним из разрядов, который указывал бы, положительное или от рицательное значение содержится в других битах (рис. 3.2). Знаковый разряд должен быть самым старшим битом (Most-Significant-Bit — MSB), поскольку самый младший бит
(Least-Significant-Bit — LSB) нужен для обозначения нечетных чисел. Когда бит MSB со держит информацию о знаке, предполагается, что значение 0 означает положительное чис ло, а значение 1 — отрицательное. Другие байты содержат абсолютное значение.
Бит 15 ...................... Бит О
1 11111111111111
15 битов содержат абсолютное значение
▼
Знаковый разряд
0 означает положительное число
1 означает отрицательное целое число
РИС. 3.2. Организация битов в 16-разрядном
коротком знаковом целом числе
Таким образом, занимающее 8 битов знаковое число может содержать значения в пре делах от -128 до 127, а занимающее 16 битов — значения в пределах от -32 768 до 32 767. Еще раз посмотрите на табл. 3.1 и обратите внимание на то, что тип s h o r t i n t (знако вый) поддерживает положительные и отрицательные целочисленные значения в 16-раз-рядном пространстве.
Do'stlaringiz bilan baham: |