Вход/Регистрация
Программирование. Принципы и практика использования C++ Исправленное издание
вернуться

Страуструп Бьерн

Шрифт:

Двоичная система основана на базе счисления, равной двум. В этой системе есть только две цифры:

0
и
1
. В языке С++ невозможно непосредственно представить двоичные числа как литералы. В качестве литералов и формата ввода-вывода в языке С++ непосредственно поддерживаются только восьмеричные, десятичные и шестнадцатеричные числа. Однако двоичные числа полезно знать, даже если мы не можем явно представить их в тексте программы. Например, десятичное число
123
равно
1*2^6+1*2^5+1*2^4+1*2^3+0*2^2+1*2+1
, т.е.
1*64+1*32+1*16+1*8+0*4+1*2+1
, т.е. (в двоичном виде)
1111011
.

A.2.2. Литералы с плавающей точкой

Литералы с плавающей точкой (floating-point-literal) содержат десятичную точку (

.
), показатель степени (например,
e3
) или суффикс, обозначающий число с плавающей точкой (
d
или
f
). Рассмотрим примеры.

123 // int (нет десятичной точки, суффикса или показателя степени)

123. // double: 123.0

123.0 // double

.123 // double: 0.123

0.123 // double

1.23e3 // double: 1230.0

1.23e–3 // double: 0.00123

1.23e+3 // double: 1230.0

Литералы с плавающей точкой имеют тип

double
, если суффикс не означает иное. Рассмотрим примеры.

1.23 // double

1.23f // float

1.23L // long double

A.2.3. Булевы литералы

Литералами типа

bool
являются литералы
true
и
false
. Целочисленное значение литерала
true
равно
1
, а литерала
false
—
0
.

A.2.4. Символьные литералы

Символьный литерал (character literal) — это символ, заключенный в одинарные кавычки, например

'a'
или
'@'
. Кроме того, существует несколько специальных символов.

Специальный символ представляется с помощью имени в языке C++, заключенного в одинарные кавычки, например

'\n'
(новая строка) и
'\t'
(табуляция).

Набор символов содержит следующие видимые символы:

abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

0123456789

!@#$%^&*_+|~`{}[]:";'<>?,./

В переносимом коде нельзя рассчитывать на дополнительные видимые символы. Значение символа, например

'a'
для буквы
a
, зависит от реализации (но его легко выяснить, например, выполнив инструкцию,
cout << int('a')
).

A.2.5. Строковые литералы

Строковый литерал (string literal) — это последовательность символов, заключенных в двойные кавычки, например

"Knuth"
и
"King Canute"
. Строковый литерал нельзя произвольно разбивать на несколько строк; для перехода на новую строку используется специальный символ
\n
.

"King

Canute" // ошибка: переход на новую строку в строковом литерале

"King\nCanute" // OK: правильный переход на новую строку

Два строковых литерала, разделенных только одним пробелом, считаются одним строковым литералом. Рассмотрим пример.

"

King" "Canute" // эквивалентно "KingCanute" (без пробела)

Обратите внимание на то, что специальные символы, такие как

\n
, могут входить в строковые литералы.

A.2.6. Указательные литералы

Существует только один указательный литерал (pointer literal): нулевой указатель (

0
). В качестве нулевого указателя можно использовать любое константное выражение, равное
0
.

t* p1 = 0; // OK: нулевой указатель

int* p2 = 2–2; // OK: нулевой указатель

int* p3 = 1; // ошибка: 1 — int, а не указатель

  • Читать дальше
  • 1
  • ...
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: