.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.