.NET Core - числа

.NET Core поддерживает стандартные числовые целочисленные примитивы и примитивы с плавающей запятой. Он также поддерживает следующие типы -

  • System.Numerics.BigInteger, который является целым типом без верхней или нижней границы.

  • System.Numerics.Complex - это тип, представляющий комплексные числа.

  • Набор векторных типов с поддержкой Single Instruction Multiple Data (SIMD) в пространстве имен System.Numerics.

Интегральные типы

.NET Core поддерживает целые числа со знаком и без знака в различных диапазонах от одного до восьми байтов. Все целые числа являются типами значений.

В следующей таблице представлены целые типы и их размер;

Тип Подпись / Без подписи Размер (байты) Минимальное значение Максимальное значение
Байт Неподписанный 1 0 255
Int16 Подписано 2 −32 768 32 767
Int32 Подписано 4 −2 147 483 648 2 147 483 647
Int64 Подписано 8 -9 223 372 036 854 775 808 9 223 372 036 854 775 807
SByte Подписано 1 -128 127
UInt16 Неподписанный 2 0 65 535
UInt32 Неподписанный 4 0 4 294 967 295
UInt64 Неподписанный 8 0 18 446 744 073 709 551 615

Каждый интегральный тип поддерживает стандартный набор операторов арифметики, сравнения, равенства, явного преобразования и неявного преобразования.

Вы также можете работать с отдельными битами в целочисленном значении, используя класс System.BitConverter.

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

.NET Core включает три примитивных типа с плавающей запятой, которые показаны в следующей таблице.

Тип Размер (байты) Минимальное значение Максимальное значение
Двойной 8 -1,79769313486232e308 1,79769313486232e308
Один 4 -3,402823e38 3,402823e38
Десятичный 16 -79,228,162,514,264,337,593,5 43,950,335 79,228,162,514,264,337,593,543,9 50,335
  • Каждый тип с плавающей запятой поддерживает стандартный набор операторов арифметики, сравнения, равенства, явного и неявного преобразования.

  • Вы также можете работать с отдельными битами в значениях Double и Single, используя класс BitConverter.

  • Структура Decimal имеет собственные методы Decimal.GetBits и Decimal.Decimal (Int32 ()) для работы с отдельными битами десятичного значения, а также собственный набор методов для выполнения некоторых дополнительных математических операций.

BigInteger

  • System.Numerics.BigInteger - неизменяемый тип, представляющий произвольно большое целое число, значение которого теоретически не имеет верхней или нижней границы.

  • Методы типа BigInteger очень похожи на методы других целочисленных типов.

Сложный

  • Тип System.Numerics.Complex представляет комплексное число, т. Е. Число, состоящее из действительной и мнимой числовой частей.

  • Он поддерживает стандартный набор операторов арифметики, сравнения, равенства, явного и неявного преобразования, а также математические, алгебраические и тригонометрические методы.

SIMD

  • Пространство имен Numerics включает набор векторных типов с поддержкой SIMD для .NET Core.

  • SIMD позволяет распараллеливать некоторые операции на аппаратном уровне, что приводит к огромному повышению производительности математических, научных и графических приложений, выполняющих вычисления над векторами.

  • Векторные типы с поддержкой SIMD в .NET Core включают следующее:

    • Типы System.Numerics.Vector2, System.Numerics.Vector3 и System.Numerics.Vector4, которые являются 2-, 3- и 4-мерными векторами типа Single.

    • Структура Vector <T>, позволяющая создавать вектор любого примитивного числового типа. К примитивным числовым типам относятся все числовые типы в пространстве имен System, кроме Decimal.

    • Два типа матриц: System.Numerics.Matrix3 × 2, которые представляют матрицу 3 × 2; и System.Numerics.Matrix4 × 4, который представляет матрицу 4 × 4.

    • Тип System.Numerics.Plane, представляющий трехмерную плоскость, и тип System.Numerics.Quaternion, представляющий вектор, который используется для кодирования трехмерных физических вращений.