Встроенные типы приведены в таблице 3.1. Они однозначно соответствуют стандартным классам библиотеки .NET определенным в пространстве имен System.
Как видно из таблицы, существует несколько вариантов представления целых и вещественных величин.
Внутреннее представление величины целого типа– целое число в двоичном коде. В знаковых типах старший бит числа интерпретируется как знаковый (0-положительное число, 1-отрицательное). Отрицательные числа чаще всего представляются в дополнительном коде – все разряды числа, кроме знакового разряда, инвертируются, затем к числу прибавляется единица, и знаковому биту присваивается единица. Беззнаковые типы позволяют представлять только положительные числа, поскольку старший разряд рассматривается как часть кода числа.
Вещественные типы хранятся в памяти иначе, чем целочисленные. Внутреннее представление величины вещественного типа состоит из двух частей – мантиссы и порядка, каждая часть имеет знак. Длина мантиссы определяет точность числа, а длина порядка – его диапазон. Например, число 0,381*10^4 хранятся цифры мантиссы 381 и порядок 4, для числа 560,3*10^2 – мантисса 5603 и порядок 5.
Тип decimal предназначен для денежных вычислений, в которых критичны ошибки округления. Данные тип не относится к вещественным типам, у них разное внутреннее представление. Величины денежного типа нельзя использовать в одном выражении с вещественными буз явного преобразования типа.
Любой встроенный тип языка С# соответствует стандартному классу библиотеки .NET. Везде, где используется имя встроенного типа его можно заменить именем класса библиотеки System. Это значит, что у встроенных типов есть методы и поля. Например:
double.MaxValue (System.Double.MaxValue) – максимальное значение числа типа double.
uint.MinValue (System.UInt32.MinValue) – минимальное значение числа типа uint.