.NET Core 数字类型
.NET Core 支持标准的整数和浮点单元。它还支持以下类型:
System.Numerics.BigInteger是一种没有上限或下限的整数类型。
System.Numerics.Complex是一种表示复数的类型。
System.Numerics命名空间中一组启用单指令多数据( SIMD )的向量类型。
整数类型
.NET Core 支持长度从一个字节到八个字节的不同范围的有符号整数和无符号整数。所有整数都是值类型。
下表表示整数类型及其大小;
类型 | 长度 | 最小值 | 最大值 |
---|---|---|---|
Byte无符号 | 1 | 0 | 255 |
Int16有符号 | 2 | −32,768 | 32,767 |
Int32有符号 | 4 | −2,147,483,648 | 2,147,483,648 |
Int64有符号 | 8 | −9,223,372,036,854,775,808 | 9,223,372,036,854,775,808 |
SByte有符号 | 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,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类型代表用于编码三维物理旋转的矢量。