Dotnet Core 简明教程

.NET Core - Numerics

NET Core supports the standard numeric integral and floating-point primitives. It also supports the following types −
  1. System.Numerics.BigInteger 这是一个不带上下限的整数类型。

  2. System.Numerics.Complex 这是一个表示复数的类型。

  3. System.Numerics 命名空间中的单指令多数据 (SIMD) 启用向量类型的集合。

Integral types

NET Core supports both signed and unsigned integers of different ranges from one byte to eight bytes in length. All integers are value types.

下表表示整数类型及其大小;

Type

Signed/ Unsigned

Size (bytes)

Minimum Value

Maximum Value

Byte

Unsigned

1

0

255

Int16

Signed

2

−32,768

32,767

Int32

Signed

4

−2,147,483,648

2,147,483,647

Int64

Signed

8

−9,223,372,036,854,775,808

9,223,372,036,854,775,807

SByte

Signed

1

-128

127

UInt16

Unsigned

2

0

65,535

UInt32

Unsigned

4

0

4,294,967,295

UInt64

Unsigned

8

0

18,446,744,073,709,551,615

每种整数类型都支持一组标准术语,包括算术、比较、相等性、显式转换和隐式转换运算符。

你还可以使用 System.BitConverter 类通过整数值中的单独位进行操作。

Floating-point types

Table 1. NET Core includes three primitive floating point types, which are shown in the following table.

Type

Size (bytes)

Minimum Value

Maximum Value

Double

8

−1.79769313486232e308

1.79769313486232e308

Single

4

−3.402823e38

3.402823e38

Decimal

16

−79,228,162,514,264,337,593,5 43,950,335

79,228,162,514,264,337,593,543,9 50,335

  1. 每个浮点类型都支持一组标准算术、比较、相等、显式转换和隐式转换运算符。

  2. 你还可以通过使用 BitConverter 类来处理 Double 和 Single 值中的各个位。

  3. Decimal 结构具有自己的方法 Decimal.GetBits 和 Decimal.Decimal(Int32()),用于处理十进制值的各个位,以及用于执行一些附加数学运算的自己的方法集。

BigInteger

  1. System.Numerics.BigInteger 是一个不可变类型,它表示一个理论上没有上限或下限的任意大整数。

  2. BigInteger 类型的这些方法与其他整体类型的非常相似。

Complex

  1. System.Numerics.Complex 类型的复合数即,一个具有实数部分和虚数部分的数

  2. 它支持一组标准的算术、比较、相等、显式转换和隐式转换运算符,以及数学、代数和三角函数方法。

SIMD

  1. Numerics 命名空间包括一组针对 .NET Core 的 SIMD 矢量类型。

  2. SIMD 允许在硬件级别并行执行一些操作,从而显著提高针对矢量执行计算的数学、科学和图形应用程序的性能。

  3. .NET Core 中的 SIMD 矢量类型包括以下内容:-System.Numerics.Vector2、System.Numerics.Vector3 和 System.Numerics.Vector4 类型,分别为 2、3 和 4 维度的 Single 类型矢量。Vector<T> 结构,允许你创建一个任何基本数字类型的矢量。基本数字类型包括 System 命名空间中的所有数字类型,十进制数除外。两种矩阵类型,System.Numerics.Matrix3X2,它表示一个 3×2 矩阵;System.Numerics.Matrix4X4,它表示一个 4×4 矩阵。System.Numerics.Plane 类型,它表示一个三维平面;System.Numerics.Quaternion 类型,它表示一个矢量,用于对三维物理旋转进行编码。