Шаг 18.
Язык программирования C#. Начала
Базовые типы и операторы. Литералы
На этом шаге мы рассмотрим понятие литерала и их представление.
Под литералами подразумевают константные (такие, которые нельзя изменить) значения, используемые в программном коде. Примерами литералов являются число 123 (целочисленный литерал), текст
"Изучаем С#" (текстовый литерал) или буква 'ы' (символьный литерал). То есть это некоторые фиксированные значения, понятные для программиста, которые могут использоваться в
программе. Но пикантность ситуации в том, что такие значения в программе реализуются по тому же принципу, что и переменные. Другими словами, каждый литерал имеет определенный тип
(или относится к определенному типу), и обрабатывается литерал в соответствии с правилами работы со значением данного типа. Возникает вопрос: к какому типу относится, например,
целочисленный литерал 123? Понятно, что это целое число. Но для реализации целочисленных значений существует несколько типов, и в данном конкретном случае любой из них теоретически
подходит для реализации числа 123. Ответ же состоит в том, что число 123 реализуется как int-значение. Вообще есть несколько правил, определяющих способ реализации литералов.
- Целочисленный литерал реализуется как значение "наименьшего" типа, начиная с типа int, достаточного для сохранения значения литерала.
- Действительные числовые литералы (число с плавающей точкой, как, например, число 12.3) реализуются в виде значений типа double.
- Символьные литералы заключаются в одинарные кавычки (например, 'F' или 'я') и реализуются как значения типа char.
- Текстовые литералы (текст) заключаются в двойные кавычки (например, "Язык С#" или "А") и реализуются как объекты класса String из пространства имен System (мы
используем идентификатор string для выражения System.String).
Символьный литерал заключается в одинарные кавычки, а текстовый - в двойные. Символьный литерал - это один символ. Текст может содержать много символов. Но если один символ заключить в
двойные кавычки, то это будет текст, а не символьный литерал. Иными словами, выражение 'А' представляет собой символьный литерал, а выражение "А" является текстовым литералом (состоящим из
одного символа). И хотя с формальной точки зрения в обоих случаях мы имеем дело с одним и тем же символом, с технической точки зрения мы имеем дело со значениями разных типов, реализованных совершенно по-разному.
Описанные выше правила применяются при реализации литералов по умолчанию. Но мы можем вносить в этот процесс разумные коррективы. Так, если мы хотим, чтобы целочисленный литерал
реализовался как long-значение, надо использовать суффикс L или l. Например, литерал 123L означает число 123, реализованное как значение типа long. Если
воспользоваться суффиксом U или u, то целочисленный литерал будет реализован как значение типа uint. Суффикс UL (а также ul, Ul и uL)
позволяет определить литерал типа ulong - например, выражение 123UL определяет число 123, реализованное как значение типа ulong.
Если необходимо, чтобы числовой литерал реализовался как float-значение, используют суффикс F или f. Например, выражение 12.3F определяет число 12.3 как
значение тина float.
Если использовать суффикс М или m в числовом литерале, получим число, реализованное как значение типа decimal. Примером может быть выражение 12.3М.
Целочисленные значения можно представлять шестнадцатеричными литералами. Шестнадцатеричный литерал начинается с символов 0x или 0X. В представлении
шестнадцатеричного литерала используются цифры от 0 до 9, а также латинские буквы от А до F для обозначения чисел от 10 до 15 соответственно. Буквы можно использовать как
строчные, так и прописные. Если шестнадцатеричный литерал записан в виде последовательности цифр и букв
anan-1...a2a1a0, в которой ak (k=0, 1, 2, ..., n) - это цифры от 0 до 9 или буквы от А до F,
то в десятичной системе счисления такое число вычисляется как
anan-1...a2a1a0 = a0*160+ a1* 161+ a2* 162+ ... + an-1* 16n-1+ an* 16n.
При этом вместо букв А, В, ..., F подставляются числа 10, 11, ..., 15. Например, литералу 0x2F9D соответствует десятичное число
13 * 160+ 9 * 161+ 15 * 162+ 2 * 163= 12189.
На следующем шаге мы рассмотрим управляющие символы.
Предыдущий шаг
Содержание
Следующий шаг