Встроенные типы не требуют предварительного определения. Для каждого типа существует ключевое слово, которое используется при описании переменных, констант и т. д. Если же программист определяет собственный тип данных, он описывает его характеристики и сам дает ему имя, которое затем применяется точно так же, как имена стандартных типов. Описание собственного типа данных должно включать всю информацию, необходимую для его использования, а именно внутреннее представление и допустимые действия. Встроенные типы С# приведены в табл. 2.5. Они однозначно соответствуют стандартным классам библиотеки.NET, определенным в пространстве имен System. Как видно из таблицы, существуют несколько вариантов представления целых и вещественных величин. Программист выбирает тип каждой величины, используемой в программе, с учетом необходимого ему диапазона и точности представления данных.
Целые типы, а также символьный, вещественные и финансовый типы можно объединить под названием арифметических типов.
|
|
Внутреннее представление величины целого типа — целое число в двоичном коде. В знаковых типах старший бит числа интерпретируется как знаковый (0 — положительное число, 1 — отрицательное). Отрицательные числа чаще всего представляются в так называемом дополнительном коде. Для преобразования числа в дополнительный код все разряды числа, за исключением знакового, инвертируются, затем к числу прибавляется единица, и знаковому биту тоже присваивается единица. Беззнаковые типы позволяют представлять только положительные числа, поскольку старший разряд рассматривается как часть кода числа.
Таблица 2.5. Встроенные типы С#
Название Ключевое Тип.NET Диапазон значений Описание Размер,
слово битов
Логический тип bool Boolean true, false
Целые типы sbyte SByte От-128 до 127 Со знаком 8
byte Byte От 0 до 255 Без знака 8
short Int.16 От -32768 до 32767 Со знаком 16
ushort UInt16 От 0 до 65535 Без знака 16
int Int32 От -2 • 109 до 2 • 109 Со знаком 32
Uint UInt32 От 0 до 4 • 109 Без знака 32
long Int64 От-9 х 1018 до Со знаком 64
9•1018
ulong UInt64 От 0 до 18•1018 Без знака 64
Символьный char Char От U+0000 Unicode- 16
тип до U+ffff символ
Вещественные1 float Single От 1.5 • 10-45 7 цифр 32
до 3.4 • 1038
double Double От 5.0 • 10-324 15--16 цифр 64
до 1.7 • 10308
Финансовый decimal Decimal От 1.0 • 10-28 28-29 цифр 128
тип до 7.9 • 1028
Строковый string String Длина ограничена Строка
тип объемом доступной из Unicode-
памяти символов
Тип object object Object Можно хранить Всеобщий
все что угодно предок