.NET Core - Numéricos
.NET Core admite las primitivas numéricas estándar integrales y de punto flotante. También es compatible con los siguientes tipos:
System.Numerics.BigInteger que es un tipo integral sin límite superior o inferior.
System.Numerics.Complex es un tipo que representa números complejos.
Un conjunto de tipos de vectores habilitados para datos múltiples de instrucción única (SIMD) en el espacio de nombres System.Numerics.
Tipos integrales
.NET Core admite enteros firmados y sin firmar de diferentes rangos de un byte a ocho bytes de longitud. Todos los números enteros son tipos de valor.
La siguiente tabla representa los tipos integrales y su tamaño;
Tipo | Firmado / Sin firmar | Tamaño (bytes) | Valor mínimo | Valor máximo |
---|---|---|---|---|
Byte | No firmado | 1 | 0 | 255 |
Int16 | Firmado | 2 | −32,768 | 32,767 |
Int32 | Firmado | 4 | −2,147,483,648 | 2,147,483,647 |
Int64 | Firmado | 8 | −9,223,372,036,854,775,808 | 9.223.372.036.854.775.807 |
SByte | Firmado | 1 | -128 | 127 |
UInt16 | No firmado | 2 | 0 | 65.535 |
UInt32 | No firmado | 4 | 0 | 4.294.967.295 |
UInt64 | No firmado | 8 | 0 | 18,446,744,073,709,551,615 |
Cada tipo integral admite un conjunto estándar de operadores aritméticos, de comparación, de igualdad, de conversión explícita y de conversión implícita.
También puede trabajar con los bits individuales en un valor entero utilizando la clase System.BitConverter.
Tipos de coma flotante
.NET Core incluye tres tipos de punto flotante primitivos, que se muestran en la siguiente tabla.
Tipo | Tamaño (bytes) | Valor mínimo | Valor máximo |
---|---|---|---|
Doble | 8 | −1,79769313486232e308 | 1.79769313486232e308 |
Soltero | 4 | −3,402823e38 | 3.402823e38 |
Decimal | dieciséis | −79,228,162,514,264,337,593,5 43,950,335 | 79,228,162,514,264,337,593,543,9 50,335 |
Cada tipo de punto flotante admite un conjunto estándar de operadores aritméticos, de comparación, de igualdad, de conversión explícita y de conversión implícita.
También puede trabajar con los bits individuales en valores Double y Single utilizando la clase BitConverter.
La estructura Decimal tiene sus propios métodos, Decimal.GetBits y Decimal.Decimal (Int32 ()), para trabajar con los bits individuales de un valor decimal, así como su propio conjunto de métodos para realizar algunas operaciones matemáticas adicionales.
BigInteger
System.Numerics.BigInteger es un tipo inmutable que representa un entero arbitrariamente grande cuyo valor en teoría no tiene límites superiores o inferiores.
Los métodos del tipo BigInteger son muy paralelos a los de los otros tipos integrales.
Complejo
El tipo System.Numerics.Complex representa un número complejo, es decir, un número con una parte de número real y una parte de número imaginario
Admite un conjunto estándar de operadores aritméticos, de comparación, igualdad, conversión explícita y conversión implícita, así como métodos matemáticos, algebraicos y trigonométricos.
SIMD
El espacio de nombres de Numerics incluye un conjunto de tipos de vectores habilitados para SIMD para .NET Core.
SIMD permite paralelizar algunas operaciones a nivel de hardware, lo que resulta en enormes mejoras de rendimiento en aplicaciones matemáticas, científicas y gráficas que realizan cálculos sobre vectores.
Los tipos de vectores habilitados para SIMD en .NET Core incluyen lo siguiente:
System.Numerics.Vector2, System.Numerics.Vector3 y System.Numerics.Vector4 tipos, que son vectores de 2, 3 y 4 dimensiones de tipo Single.
La estructura Vector <T> que le permite crear un vector de cualquier tipo numérico primitivo. Los tipos numéricos primitivos incluyen todos los tipos numéricos en el espacio de nombres del sistema excepto Decimal.
Dos tipos de matrices, System.Numerics.Matrix3 × 2, que representa una matriz de 3 × 2; y System.Numerics.Matrix4 × 4, que representa una matriz de 4 × 4.
El tipo System.Numerics.Plane, que representa un plano tridimensional, y el tipo System.Numerics.Quaternion, que representa un vector que se utiliza para codificar rotaciones físicas tridimensionales.