开发学院

您的位置:首页>教程>正文

教程正文

.NET Core 数字类型

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

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

  •   System.Numerics.Complex是一种表示复数的类型。

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

整数类型

  .NET Core 支持长度从一个字节到八个字节的不同范围的有符号整数和无符号整数。所有整数都是值类型。

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

类型长度最小值最大值
Byte无符号10255
Int16有符号2−32,76832,767
Int32有符号4−2,147,483,6482,147,483,648
Int64有符号8−9,223,372,036,854,775,8089,223,372,036,854,775,808
SByte有符号1-128127
UInt16 Unsigned2065,535
UInt32 Unsigned404,294,967,295
UInt64 Unsigned8018,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,5 43,950,335


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

  您也可以使用BitConverter 类来处理Double和Single值中的各个位。

  十进制结构有自己的方法Decimal.GetBits和Decimal.Decimal(Int32()),用于处理十进制值的各个位,也有自己的一组方法用于执行一些额外的数学运算。

BigInteger

  System.Numerics.BigInteger是一种不可变类型,代表一个任意大的整数,其值在理论上没有上限或下限。

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

复数

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

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

SIMD

  数字命名空间包括.NET Core的一组启用SIMD的向量类型

  SIMD允许一些操作在硬件级别并行化,这使得通过向量执行计算的数学、科学和图形应用程序的性能有了巨大的提高。

  .NET Core中启用SIMD的向量类型包括以下类型:

  System.Numerics.Vector2, System.Numerics.Vector3和System.Numerics.Vector4类型,它们是Single类型的2、3和4维向量。

  Vector <T >结构,允许您创建任何原始数字类型的矢量。基本数字类型包括系统命名空间中除十进制以外的所有数字类型。

  两种矩阵类型System.Numerics.Matrix3×2,表示3×2矩阵,System.Numerics.Matrix4×4表示4×4矩阵。

  System.Numerics.Plane类型代表三维平面,System.Numerics.Quaternion类型代表用于编码三维物理旋转的矢量。