.NET Core數字

.NET Core支持標準的數字整數和浮點基元類型。 它還支持以下類型 -

  • System.Numerics.BigInteger是一個整數類型,沒有上限或下限。
  • System.Numerics.Complex是一種表示複數的類型。
  • System.Numerics命名空間中的一組支持單指令多數據(SIMD)的矢量類型。

整體類型

.NET Core支持從一個字節到八個字節的不同範圍的有符號和無符號整數。所有整數都是值類型。

下表列出了整體類型及其大小;

類型

有/無符號

大小(位)

最小值

最大值

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類來處理整數值中的各個位。

浮點類型

.NET Core包含三種基本浮點類型,如下表所示。

類型

大小(位)

最小值

最大值

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

  • 每個浮點類型都支持一組標準的算術,比較,相等,顯式轉換和隱式轉換運算符。
  • 還可以使用BitConverter類使用DoubleSingle值中的各個位。
  • Decimal結構有自己的方法,Decimal.GetBitsDecimal.Decimal(Int32()),用於處理十進制值的各個位,以及它自己的一組方法來執行一些額外的數學運算。

1. BigInteger

  • System.Numerics.BigInteger是一個不可變的類型,它表示一個理論值沒有上下限的任意大的整數。

  • BigInteger類型的方法與其他整型類型的方法非常類似。

2. Complex

  • System.Numerics.Complex類型表示複數,即具有實數部分和虛數部分的數字
  • 它支持一組標準的算術,比較,等式,顯式轉換和隱式轉換運算符,以及數學,代數和三角函數方法。

3. SIMD

  • Numerics命名空間包含一組用於.NET Core的啓用SIMD的矢量類型。

  • SIMD允許一些操作在硬件級別進行並行化,從而在數學,科學和圖形應用程序中執行對矢量進行計算的巨大性能改進。

  • .NET Core中支持SIMD的矢量類型包括以下內容 -

    • System.Numerics.Vector2System.Numerics.Vector3System.Numerics.Vector4類型,它們是Single類型的2,34維矢量。
    • Vector <T>結構可創建任何基本數字類型的向量。基本數字類型包括System名稱空間中除Decimal以外的所有數字類型。
    • 兩個矩陣類型,System.Numerics.Matrix3×2,表示3×2矩陣; 和表示4×4矩陣的System.Numerics.Matrix4×4
    • 表示三維平面的System.Numerics.Plane類型和表示用於對三維物理旋轉進行編碼的矢量的System.Numerics.Quaternion類型。