Данные и типы данных в языке программирования С #
Данные и типы данных в С#
Программа состоит из операторов (инструкций), которые
указывают на действие, которое надо выполнить. Действия выполняют над данными.
Данные в С # называют литералами. Литералы бывают логическими, целочисленными, вещественными, символьными и строчными. И отдельный литерал представляет ключевое слово null.
Логические литералы
Есть две логических константы - true (истина) и false (ложь).
Целочисленные литералы
Целочисленные литералы представляют положительные и отрицательные целые числа, например, 1, 2, 3, 4, -7, -109.
Целочисленные литералы могут быть выражены в десятичной, шестнадцатеричной и двоичной форме.
Целые числа в десятичной форме используются в повседневной жизни.
Числу в двоичной форме предшествуют символы 0b , после которых идет набор из нулей и единиц:
0b11 ---3
0 b1001---9
0b 1100---12
Для записи числа в шестнадцатеричной форме применяются символы 0x , после которых идет набор символов от 0 до 9 и от A до F, которые представляют число:
0х 0A---10
0xFF---255
0xA1---161
Вещественные литералы
Вещественные литералы представляют вещественные числа. Этот тип литералов имеет две формы. Первая форма - вещественные числа с фиксированной запятой ( точкой), при которой дробную часть отделяется от целой части точкой. Например:
3.14
100.001
-0.38
Также вещественные литералы могут определяться в экспоненциальной форме MEp,
где M — мантисса,
E - экспонента, которая фактически означает "*10^" (умножить на десять в степени),
p — порядок. Например
Например:
3.2e3
1.2E-1
51.4е-3
Символьные литералы
Символьные литералы представляют одиночные символы. Символы заключаются в одинарные кавычки.
Символьные литералы бывают нескольких видов. Прежде всего это обычные символы:
'2‘
'A‘
'T‘
Управляющие последовательности. Они представляют символ, перед которым ставится обратный слеш.
Данная последовательность интерпретируется определенным образом.
Наиболее часто используемые последовательности:
- '\n' - перевод строки
- '\t' - табуляция
- '\' - обратный слеш
Также символы могут определяться в виде шестнадцатеричных кодов ASCII . Для этого в одинарных кавычках указываются символы '\x', после которых идет шестнадцатеричный код символа из таблицы ASCII.
Например, литерал '\x78' представляет символ x, а литерал '\x5A' ---символ z
И последний способ определения символьных литералов представляет применение кодов из таблицы символов Unicode . Для этого в одинарных кавычках указываются символы '\u', после которых идет шестнадцатеричный код Unicode. Например, код '\u0411' представляет кириллический символ 'Б ':
Строковые литералы
Строковые литералы представляют строки. Строки заключаются в двойные кавычки:
"hello "
"hello world"
“ Группа 19ит17 ”
Если внутри строки необходимо вывести двойную кавычку, то передней ставится обратный слеш.
Например "Колледж \"ПКИПТ\"“
Также в строках можно использовать управляющие последовательности. Например, последовательность '\n' осуществляет перевод на новую строку:
Например: "Привет \nмир "
Вывод будет в 2 строки.
null
null представляет ссылку, которая не указывает ни на какой объект. То есть по сути отсутствие значения.
Переменные
Для хранения данных в программе используют переменные . Переменная представляет именнованную область памяти, в которой хранится значение определенного типа. Переменная имеет тип, имя и значение. Тип определяет, какого рода информацию может хранить переменная.
Перед использованием любую переменную надо определить.
Синтаксис определения переменной выглядит следующим образом:
тип имя_переменной;
В качестве имени переменной может выступать любое произвольное название, которое удовлетворяет следующим требованиям:
- имя может содержать любые цифры, буквы и символ подчеркивания, при этом первый символ в имени должен быть буквой или символом подчеркивания;
- в имени не должно быть знаков пунктуации и пробелов;
- имя не может быть ключевым словом языка C#. При работе в Visual Studio среда разработки подсвечивает ключевые слова синим цветом.
Имя переменой может быть любым, но следует давать переменным описательные имена, которые будут говорить об их предназначении.
C# является регистрозависимым языком, поэтому следующие два определения переменных будут представлять две разные переменные:
string name;
string Name;
После определения переменную можно использовать в программе. В программе можно после многократно изменять тип.
Типы данных
Тип данных определяет внутреннее представление данных, множество значений, которые может принимать объект, а также допустимые действия, которые можно применять над объектом.
В языке C# есть следующие примитивные типы данных:
- bool : хранит значение true или false (логические литералы).
Представлен системным типом System.Boolean
bool alive = true;
- byte : хранит целое число от 0 до 255 и занимает 1 байт.
Представлен системным типом System.Byte
byte bit1 = 1;
byte bit2 = 102;
- sbyte : хранит целое число от -128 до 127 и занимает 1 байт. Представлен системным типом System.SByte.
sbyte bit1 = -101;
sbyte bit2 = 102;
- short : хранит целое число от -32768 до 32767 и занимает 2 байта. Представлен системным типом System.Int16
short n1 = 1;
short n2 = 102;
- ushort : хранит целое число от 0 до 65535 и занимает 2 байта. Представлен системным типом System.UInt16
ushort n1 = 1;
- int : хранит целое число от -2147483648 до 2147483647 и занимает 4 байта. Представлен системным типом System.Int32. Все целочисленные литералы по умолчанию представляют значения типа int:
int a = 10;
int b = 0b101; // бинарная форма b =5
int c = 0xFF; // шестнадцатеричная форма c = 255
- uint : хранит целое число от 0 до 4294967295 и занимает 4 байта. Представлен системным типом System.UInt32
uint a = 10;
uint b = 0b101;
uint c = 0xFF;
- long : хранит целое число от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 и занимает 8 байт. Представлен системным типом System.Int64
long a = -10;
long b = 0b101;
long c = 0xFF;
ulong :
хранит целое число от 0 до 18 446 744 073 709 551 615 и занимает 8 байт.
Представлен системным типом System.UInt64
ulong a = 10;
ulong b = 0b101;
ulong c = 0xFF;
float : хранит число с плавающей точкой от -3.4*1038 до 3.4*1038 и занимает 4 байта. Представлен системным типом System.Single.
double : хранит число с плавающей точкой от
±5.0*10-324 до ±1.7*10308 и занимает 8 байта. Представлен системным типом System.Double
- decimal : хранит десятичное дробное число. Если употребляется без десятичной запятой, имеет значение от ±1.0*10-28 до ±7.9228*1028, может хранить 28 знаков после запятой и занимает 16 байт. Представлен системным типом System.Decimal.
- char : хранит одиночный символ в кодировке Unicode и занимает 2 байта. Представлен системным типом System.Char. Этому типу соответствуют символьные литералы:
char a = 'A';
char b = '\x5A';
char c = '\u0420';
- string : хранит набор символов Unicode. Представлен системным типом System.String. Этому типу соответствуют символьные литералы.
string hello = "Hello"; string word = "world";
- object : может хранить значение любого типа данных и занимает 4 байта на 32-разрядной платформе и 8 байт на 64-разрядной платформе. Представлен системным типом System.Object, который является базовым для всех других типов и классов .NET.
object a = 22;
object b = 3.14;
object c = "hello code";