.NET Core 数字类型

.NET Core 支持标准的数字的整型和浮点型。它还支持以下类型:

  • System.Numerics.BigInteger - 一个没有上限或下限的整数类型。

  • System.Numerics.Complex - 表示复数的类型。

  • System.Numerics 命名空间中的一组支持单指令多数据(SIMD)的矢量类型。


整数类型

.NET Core 支持长度从 1 个字节到 8 个字节不等的有符号整数和无符号整数。所有整数都是 值类型

下表显示整数类型及其大小:

类型有/无符号大小 (字节)最小值最大值
ByteUnsigned10255
Int16Signed2−32,76832,767
Int32Signed4−2,147,483,6482,147,483,647
Int64Signed8−9,223,372,036,854,775,8089,223,372,036,854,775,807
SByteSigned1-128127
UInt16Unsigned2065,535
UInt32Unsigned404,294,967,295
UInt64Unsigned8018,446,744,073,709,551,615

每个整数类型都支持一组标准的算术、比较、相等、显式转换和隐式转换运算符。

您也可以使用 System.BitConverter 类来处理整数值中的位。


浮点类型

.NET Core 包括三种基本浮点类型,如下表所示:

类型大小 (位)最小值最大值
Double8−1.79769313486232e3081。79769313486232e308
Single4−3.402823e383.402823e38
Decimal16−79,228,162,514,264,337,593,5 43,950,33579,228,162,514,264,337,593,543,9 50,335
  • 每个浮点类型都支持一组标准的算术、比较、相等、显式转换和隐式转换运算符。
  • 您还可以使用 BitConverter 类处理 DoubleSingle 值中的位。
  • Decimal 结构有自己的方法 Decimal.GetBitsDecimal.Decimal(Int32()),用于处理十进制值的各个位,也有自己的一组方法,用于执行一些附加的数学运算。
BigInteger
  • System.Numerics.BigInteger 是一个不可变类型,表示一个任意大的整数,其值在理论上没有上限或下限。

  • BigInteger 类型的方法与其他整数类型的方法非常相似。

Complex
  • System.Numerics.Complex 类型表示复数,即具有实数部分和虚数部分的数字。

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

SIMD
  • Numerics 命名空间包含一组用于 .NET Core 的启用 SIMD 的矢量类型。

  • SIMD 支持一些操作在硬件级别进行并行化,从而在数学,科学和图形应用程序中执行对矢量进行计算的巨大性能改进。

  • .NET Core 中支持 SIMD 的矢量类型包括以下内容:

    • System.Numerics.Vector2System.Numerics.Vector3System.Numerics.Vector4 类型,分别是 Single 类型的 2 , 3 和 4 维矢量。

    • Vector<T> 结构可创建任何基本数字类型的向量。基本数字类型包括 System 名称空间中除 Decimal 以外的所有数字类型。

    • 两个矩阵类型,System.Numerics.Matrix3×2,表示 3×2 矩阵; 和表示 4×4 矩阵的 System.Numerics.Matrix4×4

    • 表示三维平面的 System.Numerics.Plane 类型和表示用于对三维物理旋转进行编码的矢量的 System.Numerics.Quaternion 类型。