Литералы
 
Не изменяемые во время компиляции строки и числовые значения.

Литералы - числа или ряды знаков, определенные непосредственно в исходном коде. Литеральные значения могут использоваться для назначения переменным или константам, а так же передаваться в процедуру или использоваться в выражениях.

Числовые литералы бывают двух видов - целое число и число с плавающей запятой.

Целые числовые литералы


Десятичные
Десятичные числа ( 0 1 2 3 4 5 6 7 8 9 ).
Примечание: чтобы получить отрицательные значения, со знаком "-"  (Оператор - (Инверсия)) перед числовым литералом может быть поставлен

Dim x As Integer = 123456
Dim b As Byte = -128


Шестнадцатеричные
"&H" следует с шестнадцатеричной цифрой ( 0 1 2 3 4 5 6 7 8 9 A B C D E F ).

Dim x As Integer = &h1E240
Dim b As Byte = &H80

Восьмеричные
"&O" ( O как "Восьмеричное" ), следует с восьмеричной цифрой ( 0 1 2 3 4 5 6 7 )

Dim x As Integer = &O361100
Dim b As Byte = &O200

Двоичные
"&B" следует с двоичным числом ( 0 1 )

Dim x As Integer = &B11110001001000000
Dim b As Byte = &B10000000


Размеры целочисленных суффиксов

Если целочисленный литеральный суффикс не указан, размер числа рассчитывается автоматически. Указание суффикса для размера гарантирует, что компилятор будет рассматривать число, исходя из установленного суффикса.

Целочисленные литералы, оканчивающиеся:
  • "L", "%", считаются как 32х разрядные целые числа. (Integer)
  • "&", считаются как 32х разрядные знаковые целые числа. (Long)
  • "U", "UL", считаются как 32х разрядные беззнаковые целые числа. (UInteger)
  • "LL", считаются как 64х разрядные знаковые целые числа. (LongInt)
  • "ULL", считаются как 64х разрядные беззнаковые целые числа. (ULongInt)

Префиксы, суффиксы и символы шестнадцатеричных цифр не регистрозависимы.

Dim a As Integer = 123L
Dim b As UInteger = &h1234u
Dim c As LongInt = 76543LL
Dim d As ULongInt = &b1010101ULL


Литералы с плавающей запятой

Числа с плавающей запятой , указанные в десятичных цифрах, могут быть положительными или отрицательными, иметь дробная часть и при необходимости экспоненту. Формат литералов с плавающей запятой следующий:

число[.[дробная часть]][((D|E) [+|-] экспонента)|(D|E)|][суффикс]
или
.дробная часть[((D|E) [+|-] экспонента)|(D|E)|][суффикс]

По умолчанию числа с плавающей запятой, которые не имеют экспоненты или суффикса, рассматриваются как Double (двойная точность), за исключением диалекта -lang qb , где число , имеющее 7 цифр или меньше считаются Single (одинарная точность).
Dim a As Double = 123.456
Dim b As Double = -123.0


Буква "D" или "E", помещенная после числа/дробной части, позволяет числу задавать экспоненту. Экспонента может быть определена как положительной , так и отрицательной со знаками плюс ("+") или минус ("-") . Экспоненты, не имеющие знака - положительны.
Значение экспоненты не требуется после буквы, поэтому буква может использоваться самостоятельно, только для того, чтобы указать тип. «D» указывает на число Double (двойной точности). «Е» задает число с плавающей запятой, используя точность по умолчанию. Когда буква используется в сочетании с суффиксом (см. ниже) , то тип обозначенный суффиксом отменяет тип, указанный буквой.

Dim a As Double = -123.0d
Dim b As Double = -123e
Dim c As Double = 743.1e+13
Dim d As Double = 743.1D-13
Dim e As Double = 743.1E13
Dim f As Single = 743D! 


Суффикс «!» или «F» для числа указывает на тип Single (одинарную точность (всего 32 бита)) . Суффикс «#» задает число с типом Double (двойная точность).
Обратите внимание, что запись суффиксов и спецификаторов экспонент не зависит от регистра.

Dim a As Single = 3.1!
Dim b As Single = -123.456e-7f
Dim c As Double = 0#
Dim d As Double = 3.141592653589e3#


Строковые литералы

Строковые литералы представляют собой последовательность символов, содержащихся между двумя двойными кавычками. Последовательность символов управляется или не управляется.

Двойные кавычки могут быть указаны в строке буквально с помощью двух двойных кавычек вместе.
Print "Hello World!"
Print "That's right!"
Print "See the ""word"" contained in double quotes."


Строковые литералы могут содержать управляющие последовательности, если строковый литерал задан префиксом ! Оператор (Управление строковыми литералами). Смотрите Управляющие последовательности для списка принятых управляющих последовательностей.
Print !"Hello\nWorld!"


По умолчанию строковые литералы не управляются, если не был использован оператор Option Escape в исходном коде. Если же этот оператор был использован, то последовательности управляются.

В строке последовательности могут быть отключены с помощью $ оператора (Не использовать управляющие последовательности для литералов).
Print $"C:\temp"


Кроме ASCII файлов с Unicode управляющей последовательностью (\u), FreeBASIC может разобрать UTF-8, UTF-16LE, UTF-16BE, UTF-32LE и UTF-32BE исходные файлы, позволяя символам Юникода быть непосредственно в строковом литерале.

См. также