Шаг 18.
Язык программирования C#. Начала
Базовые типы и операторы. Литералы

    На этом шаге мы рассмотрим понятие литерала и их представление.

    Под литералами подразумевают константные (такие, которые нельзя изменить) значения, используемые в программном коде. Примерами литералов являются число 123 (целочисленный литерал), текст "Изучаем С#" (текстовый литерал) или буква 'ы' (символьный литерал). То есть это некоторые фиксированные значения, понятные для программиста, которые могут использоваться в программе. Но пикантность ситуации в том, что такие значения в программе реализуются по тому же принципу, что и переменные. Другими словами, каждый литерал имеет определенный тип (или относится к определенному типу), и обрабатывается литерал в соответствии с правилами работы со значением данного типа. Возникает вопрос: к какому типу относится, например, целочисленный литерал 123? Понятно, что это целое число. Но для реализации целочисленных значений существует несколько типов, и в данном конкретном случае любой из них теоретически подходит для реализации числа 123. Ответ же состоит в том, что число 123 реализуется как int-значение. Вообще есть несколько правил, определяющих способ реализации литералов.


Символьный литерал заключается в одинарные кавычки, а текстовый - в двойные. Символьный литерал - это один символ. Текст может содержать много символов. Но если один символ заключить в двойные кавычки, то это будет текст, а не символьный литерал. Иными словами, выражение 'А' представляет собой символьный литерал, а выражение "А" является текстовым литералом (состоящим из одного символа). И хотя с формальной точки зрения в обоих случаях мы имеем дело с одним и тем же символом, с технической точки зрения мы имеем дело со значениями разных типов, реализованных совершенно по-разному.

    Описанные выше правила применяются при реализации литералов по умолчанию. Но мы можем вносить в этот процесс разумные коррективы. Так, если мы хотим, чтобы целочисленный литерал реализовался как 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.

    На следующем шаге мы рассмотрим управляющие символы.




Предыдущий шаг Содержание Следующий шаг