Читаем Программирование. Принципы и практика использования C++ Исправленное издание полностью

Суффикс u или U означает, что целочисленный литерал не имеет знака, т.е. имеет спецификатор unsigned (см. раздел 25.5.3), а суффикс l или L относит их к типу long, например 10u или 123456UL.

<p id="AutBody_Root574"><strong>A.2.1.1. Числовые системы</strong></p>

Обычно мы записываем числа в десятичной системе. Число 123 означает 1 сотню плюс 2 десятки плюс 3 единицы, или 1*100+2*10+3*1, или (используя символ ^ для обозначения степени) 1*10^2+2*10^1+3*10^0. Иногда вместо слова десятичный говорят: “База счисления равна десяти” (base-10). В данном случае число 10 означает, что в выражении 1*base^2+2*base^1+3*base^0 выполняется условие base==10. Существует много теорий, объясняющих, почему мы используем десятичную систему счисления. Одна из них апеллирует к естественным языкам: у нас на руках десять пальцев, а каждый символ, такой как 0, 1 и 2, представляющий собой цифру в позиционной системе счисления, в английском языке называется digit. Слово Digit в латинском языке означает палец.

Впрочем, иногда используются и другие системы счисления. Как правило, положительные целые числа в памяти компьютера представляются в двоичной системе счисления, т.е. база счисления равна 2 (значения 0 и 1 относительно легко представить с помощью физических состояний). Люди, сталкивающиеся с необходимостью решать задачи на низком уровне аппаратного обеспечения, иногда используют восьмеричную систему счисления (база равна 8), а при адресации памяти чаще используется шестнадцатеричная система (база равна 16).

Рассмотрим шестнадцатеричную систему счисления. Мы должны назвать шестнадцать значений от 0 до 15. Обычно для этого используются следующие символы: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, где A имеет десятичное значение 10, B — десятичное значение 11 и так далее:

A==10, B==11, C==12, D==13, E==14, F==15

Теперь можем записать десятичное число 123 как 7B в шестнадцатеричной системе счисления. Для того чтобы убедиться в этом, обратите внимание на то, что в шестнадцатеричной системе счисления число 7B равно 7*16+11, что в десятичной системе счисления равно 123. И наоборот, шестнадцатеричное число 123 означает 1*16^2+2*16+3, т.е. 1*256+2*16+3, что в десятичной системе счисления равно 291. Если вы никогда не сталкивались с недесятичными представлениями целых чисел, то мы настоятельно рекомендуем вам поупражняться в преобразовании чисел из десятичной системы в шестнадцатеричную, и наоборот. Обратите внимание на то, что шестнадцатеричная цифра имеет очень простое соответствие со своим двоичным значением.

Это объясняет популярность шестнадцатеричной системы. В частности, значение байта просто выражается двумя шестнадцатеричными цифрами.

В языке C++ (к счастью) числа являются десятичными, если иное не указано явно. Для того чтобы сказать, что число является шестнадцатеричным, следует поставить префикс 0X (символ X происходит от слова hex), так что 123==0X7B и 0X123==291. Точно так же можно использовать символ x в нижнем регистре, поэтому 123==0x7B и 0x123==291. Аналогично мы можем использовать шестнадцатеричные цифры a, b, c, d, e и f в нижнем регистре. Например, 123==0x7b.

Восьмеричная система основана на базе счисления, равной восьми. В этом случае мы можем использовать только восемь восьмеричных цифр: 0, 1, 2, 3, 4, 5, 6, 7. В языке C++ числа в восьмеричной системе счисления начинаются с символа 0, так что число 0123 — это не десятичное число 123, а 1*8^2+2*8+3, т.е. 1*64+2*8+3 или (в десятичном виде) 83. И наоборот, восьмеричное число 83, т.е. 083, равно 8*8+3, т.е. десятичному числу 67. Используя систему обозначений языка C++, получаем равенства 0123==83 и 083==67.

Двоичная система основана на базе счисления, равной двум. В этой системе есть только две цифры: 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.

<p id="AutBody_Root575"><strong>A.2.2. Литералы с плавающей точкой</strong></p>

Литералы с плавающей точкой (floating-point-literal) содержат десятичную точку (.), показатель степени (например, e3) или суффикс, обозначающий число с плавающей точкой (d или f). Рассмотрим примеры.

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

123.    // double: 123.0

123.0   // double

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных