Примитивные типы данных в C#

Переменные можно разделить на два типа: типы значений и ссылочные типы. В этом уроке мы обсудим примитивные (простые) типы данных — подкласс типов значений. 

О ссылочных типах мы поговорим в будущих уроках, но если вы хотите узнать больше о типах переменных, посетите страницу «Типы и переменные» (официальная документация C#).

Логический тип

  • Возможные значения: true и false.
  • Значение по умолчанию: false.
  • Для чего используется: для проверки условий в if-конструкциях, циклах и т.д.

Пример

using System;
namespace DataType
{
    class BooleanExample
    {
        public static void Main(string[] args)
        {
            bool isValid = true;
            Console.WriteLine(isValid);
        }
    }
}

Вывод:

true

Целые числа со знаком

Этот тип данных содержит целочисленные значения: как положительные, так и отрицательные. Один бит памяти, выделенной на такое значение, отводится на знак: + или -.

1. sbyte

  • Размер: 8 бит.
  • Допустимые значения: от -128 до 127.
  • Значение по умолчанию: 0.

Пример

using System;
namespace DataType
{
    class SByteExample
    {
        public static void Main(string[] args)
        {
            sbyte level = 23;
            Console.WriteLine(level);
        }
    }
}

Вывод:

23

Попробуйте присвоить переменной значения вне ее допустимых пределов, то есть меньше -128 и больше 127 и посмотрите, что получится.

2. short

  • Размер: 16 бит.
  • Допустимые значения: от -32768 до 32767.
  • Значение по умолчанию: 0.

Пример

using System;
namespace DataType
{
    class ShortExample
    {
        public static void Main(string[] args)
        {
            short value = -1109;
            Console.WriteLine(value);
        }
    }
}

Вывод:

-1109

3. int

  • Размер: 32 бита.
  • Допустимые значения: от -231 до 231-1.
  • Значение по умолчанию: 0.

Пример

using System;
namespace DataType
{
    class IntExample
    {
        public static void Main(string[] args)
        {
            int score = 51092;
            Console.WriteLine(score);
        }
    }
}

Вывод:

51092

4. long

  • Размер: 64 бита.
  • Допустимые значения: от -263 до 263-1.
  • Значение по умолчанию: 0L (L в конце означает, что это значение типа long).

Пример

using System;
namespace DataType
{
    class LongExample
    {
        public static void Main(string[] args)
        {
            long range = -7091821871L;
            Console.WriteLine(range);
        }
    }
}

Вывод:

-7091821871

Целые числа без знака

Эти типы данных содержат только значения равные или больше нуля, то есть неотрицательные значения. Если вы уверены, что код не будет пытаться присваивать переменной отрицательное значение, можете смело использовать эти типы данных.

1. byte

  • Размер: 8 бит.
  • Допустимые значения: от 0 до 255.
  • Значение по умолчанию: 0.

Пример

using System;
namespace DataType
{
    class ByteExample
    {
        public static void Main(string[] args)
        {
            byte age = 62;
            Console.WriteLine(level);
        }
    }
}

Вывод:

62

2. ushort

  • Размер: 16 бит.
  • Диапазон допустимых значений: от 0 до 65535.
  • Значение по умолчанию: 0.

Пример

using System;
namespace DataType
{
    class UShortExample
    {
        public static void Main(string[] args)
        {
            ushort value = 42019;
            Console.WriteLine(value);
        }
    }
}

Вывод:

42019

3. uint

  • Размер: 32 бита.
  • Допустимые значения: от 0 до 232-1.
  • Значение по умолчанию: 0.

Пример

using System;
namespace DataType
{
    class UIntExample
    {
        public static void Main(string[] args)
        {
            uint totalScore = 1151092;
            Console.WriteLine(totalScore);
        }
    }
}

Вывод:

1151092

4. ulong

  • Размер: 64 бита.
  • Допустимые значения: от 0 до 264-1.
  • Значение по умолчанию: 0.

Пример

using System;
namespace DataType
{
    class ULongExample
    {
        public static void Main(string[] args)
        {
            ulong range = 17091821871L;
            Console.WriteLine(range);
        }
    }
}

Вывод:

17091821871

Числа с плавающей точкой

Эти типы данных содержат числа с плавающей точкой, то есть числа с десятичными дробями — например, 12.36, -92.17 и т.д.

1. float

  • Точность: одинарная. 
  • Размер: 32 бита.
  • Допустимые значения: от -3.4*1038 до 3.4*1038.
  • Значение по умолчанию: 0.0F (F на конце обозначает, что это значения типа float).

Пример

using System;
namespace DataType
{
    class FloatExample
    {
        public static void Main(string[] args)
        {
            float number = 43.27F;
            Console.WriteLine(number);
        }
    }
}

Вывод:

43.27

2. double

Пример

using System;
namespace DataType
{
    class DoubleExample
    {
        public static void Main(string[] args)
        {
            double value = -11092.53D;
            Console.WriteLine(value);
        }
    }
}

Вывод:

 

-11092.53

Символьный тип (char)

  • Размер: 16 бит.
  • Допустимые значения: от U+0000 ('\u0000') до U+FFFF ('\uffff') — символы Unicode.
  • Значение по умолчанию: '\0'.

Пример

using System;
namespace DataType
{
    class CharExample
    {
        public static void Main(string[] args)
        {
            char ch1 ='\u0042';
            char ch2 = 'x';
            Console.WriteLine(ch1);
            Console.WriteLine(ch2);
        }
    }
}

Вывод:

B
x

Значение символа 'B' в Юникоде — '\u0042', соответственно, если мы выводим на экран ch1, C# напечатает 'B'.

Тип Decimal

Тип decimal имеет большую точность и меньший диапазон допустимых значений по сравнению с типами с плавающей точкой (double и float), поэтому этот тип данных подходит для денежных расчетов.

  • Размер: 128 бит.
  • Допустимые значения: от ±1.0*10-28 до ±7.9228*1028.
  • Значение по умолчанию: 0.0M (M на конце обозначает, что значение представляет тип decimal).

Пример

using System;
namespace DataType
{
    class DecimalExample
    {
        public static void Main(string[] args)
        {
         decimal bankBalance = 53005.25M;
            Console.WriteLine(bankBalance);
        }
    }
}

Вывод:

53005.25

После литерала нужно добавить M и m, иначе компилятор воспримет значение как тип double и выдаст ошибку.

Литералы

Рассмотрим следующее выражение:

int number = 41;
  • int — тип данных;
  • age — переменная;
  • 41литерал.

Литералы — фиксированные значения в программе, они не требуют вычислений. Например, 5, false, 'w' — литералы, которые возникают в программе напрямую без каких-либо вычислений.

Логические литералы

  • Возможные литералы: true и false.
  • Для чего используются: для инициализации переменных логического типа.

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

Литералы типа integer используются для инициализации переменных, т.е. sbyte, short, int, long, byte, ushort, uint и ulong.

Если литерал типа integer оканчивается на L или l, то его тип long.

Совет. Лучше используйте L вместо l. Последний вариант легко спутать с I.

long value1 = 4200910L;
long value2 = -10928190L;

Если литерал типа integer начинается с 0x, то это шестнадцатеричное значение. Число без префиксов определяется как десятичное значение.

int decimalValue = 25;
int hexValue = 0x11c; // десятичное значение — 284

Литералы с плавающей точкой

Литералы с плавающей точкой используются для инициализации переменных типов float и double.

Если литерал с плавающей точкой оканчивается суффиксом f или F, это литерал типа float. А если на d или D, это литерал типа double. Если суффикс опущен, то такой литерал считается типом double по умолчанию.

Такие литералы могут содержать e или E в экспоненциальном представлении.

double number = 24.67; // double по умолчанию
float value = -12.29F;
double scientificNotation = 6.21e2; // эквивалентно 6.21 x 10^2, т. е. 621

Символьные и строчные литералы

Символьные литералы используются для инициализации переменных типа char. Они заключаются в одинарные кавычки. Например, 'x', 'p' и т.д. 

Символьные литералы можно представить как символы, шестнадцатеричные управляющие последовательности, представления в unicode или числовые значения, приведенные к типу char.

char ch1 = 'R'; // символ
char ch2 = '\x0072'; // шестнадцатеричная управляющая последовательность
char ch3 = '\u0059'; // unicode
char ch4 = (char)107; // приведение к char

Строковые литералы — набор символьных литералов.Они заключаются в двойные кавычки. Например, "Привет", "CodeChick" и т. д.

string firstName = "Иван";
string lastName = "Иванов";

C# поддерживает следующие символы управляющих последовательностей:

Символ

Действие

\'

Одинарная кавычка

\"

Двойная кавычка

\\

Обратный слэш

\n

Новая строка

\r

Возврат каретки

\t

Горизонтальная табуляция

\a

Alert

\b

Backspace

 

codechick

СodeСhick.io - простой и эффективный способ изучения программирования.

2024 ©