Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
.NET предоставляет многочисленные примитивы целочисленных и с плавающей точкой типов, а также:
- System.Half, представляющий число с плавающей запятой половинной точности.
- System.Decimal, представляющий десятичное число с плавающей запятой.
- System.Numerics.BigInteger, который является целочисленным типом без теоретических верхних или нижних границ.
- System.Numerics.Complex, представляющий сложные числа.
- Набор типов с поддержкой SIMD в System.Numerics пространстве имен.
Целые типы
.NET поддерживает как подписанные, так и неподписанные 8-разрядные, 16-разрядные, 32-разрядные, 64-разрядные и 128-разрядные целые типы, перечисленные в следующих таблицах.
Типы целых чисел со знаком
| Тип | Размер (в байтах) | Минимальное значение | Максимальное значение |
|---|---|---|---|
| System.Int16 | 2 | -32,768 | 32,767 |
| System.Int32 | 4 | -2,147,483,648 | 2,147,483,647 |
| System.Int64 | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
| System.Int128 | 16 | −170 141 183 460 469 231 731 687 303 715 884 105 728 | 170,141,183,460,469,231,731,687,303,715,884,105,727 |
| System.SByte | 1 | -128 | 127 |
| System.IntPtr (в 32-разрядном процессе) | 4 | -2,147,483,648 | 2,147,483,647 |
| System.IntPtr (в 64-разрядном процессе) | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
Типы целых чисел без знака
| Тип | Размер (в байтах) | Минимальное значение | Максимальное значение |
|---|---|---|---|
| System.Byte | 1 | 0 | 255 |
| System.UInt16 | 2 | 0 | 65 535 |
| System.UInt32 | 4 | 0 | 4,294,967,295 |
| System.UInt64 | 8 | 0 | 18,446,744,073,709,551,615 |
| System.UInt128 | 16 | 0 | 340,282,366,920,938,463,463,374,607,431,768,211,455 |
| System.UIntPtr (в 32-разрядном процессе) | 4 | 0 | 4,294,967,295 |
| System.UIntPtr (в 64-разрядном процессе) | 8 | 0 | 18,446,744,073,709,551,615 |
Каждый тип целых чисел поддерживает набор стандартных арифметических операторов. Класс System.Math предоставляет методы для более широкого набора математических функций.
Вы также можете работать с отдельными битами в целочисленном значении System.BitConverter с помощью класса.
Замечание
Типы целых чисел без знака не соответствуют CLS. Дополнительные сведения см. в статье о независимости языка и независимых от языка компонентах.
BigInteger
Структура System.Numerics.BigInteger является неизменяемым типом, который представляет произвольно большое целое число, значение которого в теории не имеет верхних или нижних границ. Методы BigInteger типа тесно параллельны другим целочисленным типам.
Типы с плавающей запятой
.NET включает следующие типы с плавающей запятой:
| Тип | Размер (в байтах) | Приблизительный диапазон | Примитивный? | Примечания. |
|---|---|---|---|---|
| System.Half | 2 | ±65504 | нет | Представлено в .NET 5 |
| System.Single | 4 | ±3.4 x 1038 | Да | |
| System.Double | 8 | ±1.7 ×10 308 | Да | |
| System.Decimal | 16 | ±7.9228 x 1028 | нет |
Типы Half, Single, и Double поддерживают специальные значения, которые представляют такие понятия, как не число и бесконечность. Например, Double тип предоставляет следующие значения: Double.NaN, Double.NegativeInfinityи Double.PositiveInfinity. Вы используете методы Double.IsNaN, Double.IsInfinity, Double.IsPositiveInfinity и Double.IsNegativeInfinity для проверки этих специальных значений.
Каждый тип с плавающей запятой поддерживает набор стандартных арифметических операторов. Класс System.Math предоставляет методы для более широкого набора математических функций. .NET Core 2.0 и более поздних версий включает System.MathF класс, который предоставляет методы, принимаюющие аргументы Single типа.
Вы также можете работать с отдельными битами в Double, Single, и Half значениями с помощью System.BitConverter класса. Структура System.Decimal имеет собственные методы, Decimal.GetBits и Decimal(Int32[])для работы с отдельными битами десятичного значения, а также собственный набор методов для выполнения некоторых дополнительных математических операций.
Типы Double, Single, и Half предназначены для использования в случаях, когда значения по своей природе являются неточными (например, расстояние между двумя звездами) и для приложений, в которых не требуется высокая степень точности и малая ошибка округления. Используйте тип System.Decimal для случаев, когда требуется более высокая точность, и ошибки округления должны быть сведены к минимуму.
Замечание
Тип Decimal не устраняет необходимость округления. Скорее, это сводит к минимуму ошибки из-за округления.
Сложный
Структура System.Numerics.Complex представляет сложное число, то есть число с реальной частью числа и мнимой частью числа. Он поддерживает стандартный набор арифметических, сравнения, равенства, явных и неявных операторов преобразования, а также математических, алгебраических и тригонометрических методов.
Типы с поддержкой SIMD
Пространство System.Numerics имен содержит набор типов с поддержкой .NET SIMD. Операции SIMD (одна инструкция с несколькими данными) можно параллелизировать на аппаратном уровне. Это повышает пропускную способность векторных вычислений, которые распространены в математических, научных и графических приложениях.
Типы с поддержкой .NET SIMD включают следующие:
Типы Vector2, Vector3 и Vector4, которые представляют собой векторы с 2, 3 и 4 значениями Single.
Два типа матрицы, Matrix3x2представляющая матрицу 3x2 и Matrix4x4представляющую матрицу 4x4.
Тип Plane , представляющий плоскость в трехмерном пространстве.
Тип Quaternion , представляющий вектор, используемый для кодирования трехмерных физических поворотов.
Тип Vector<T> , представляющий вектор указанного числового типа и предоставляющий широкий набор операторов, которые получают поддержку SIMD. Число экземпляров Vector<T> исправлено, но его значение Vector<T>.Count зависит от ЦП компьютера, от которого выполняется код.
Замечание
Тип Vector<T> включается в .NET Core и .NET 5+, но не .NET Framework. Если вы используете .NET Framework, установите пакет NuGet System.Numerics.Vectors , чтобы получить доступ к этому типу.
Типы с поддержкой SIMD реализуются таким образом, что их можно использовать с аппаратным оборудованием, не поддерживающим SIMD, или компиляторами JIT. Чтобы воспользоваться инструкциями SIMD, 64-разрядные приложения должны запускаться средой выполнения, которая использует компилятор RyuJIT, который входит в .NET Core и в .NET Framework 4.6 и более поздних версиях. Он добавляет поддержку SIMD при выборе 64-разрядных процессоров.
Дополнительные сведения см. в разделе "Использование числовых типов с ускорением SIMD".
См. также
- Стандартные строки числового формата
- Числовые типы с плавающей запятой в C#