.NET Core - numérico
O .NET Core oferece suporte às primitivas numéricas integrais e de ponto flutuante padrão. Ele também suporta os seguintes tipos -
System.Numerics.BigInteger que é um tipo integral sem limite superior ou inferior.
System.Numerics.Complex é um tipo que representa números complexos.
Um conjunto de tipos de vetor habilitados para Single Instruction Multiple Data (SIMD) no namespace System.Numerics.
Tipos integrais
O .NET Core oferece suporte a inteiros assinados e não assinados de diferentes intervalos de um byte a oito bytes de comprimento. Todos os inteiros são tipos de valor.
A tabela a seguir representa os tipos integrais e seus tamanhos;
Tipo | Assinado / Não Assinado | Tamanho (bytes) | Valor mínimo | Valor máximo |
---|---|---|---|---|
Byte | Sem sinal | 1 | 0 | 255 |
Int16 | Assinado | 2 | -32.768 | 32.767 |
Int32 | Assinado | 4 | -2.147.483.648 | 2.147.483.647 |
Int64 | Assinado | 8 | -9.223.372.036.854.775.808 | 9.223.372.036.854.775.807 |
SByte | Assinado | 1 | -128 | 127 |
UInt16 | Sem sinal | 2 | 0 | 65.535 |
UInt32 | Sem sinal | 4 | 0 | 4.294.967.295 |
UInt64 | Sem sinal | 8 | 0 | 18.446.744.073.709.551.615 |
Cada tipo integral oferece suporte a um conjunto padrão de operadores de aritmética, comparação, igualdade, conversão explícita e conversão implícita.
Você também pode trabalhar com os bits individuais em um valor inteiro usando a classe System.BitConverter.
Tipos de ponto flutuante
O .NET Core inclui três tipos primitivos de ponto flutuante, que são mostrados na tabela a seguir.
Tipo | Tamanho (bytes) | Valor mínimo | Valor máximo |
---|---|---|---|
Duplo | 8 | −1,79769313486232e308 | 1.79769313486232e308 |
solteiro | 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.543,9 50.335 |
Cada tipo de ponto flutuante oferece suporte a um conjunto padrão de operadores de aritmética, comparação, igualdade, conversão explícita e conversão implícita.
Você também pode trabalhar com os bits individuais em valores Double e Single usando a classe BitConverter.
A estrutura Decimal possui seus próprios métodos, Decimal.GetBits e Decimal.Decimal (Int32 ()), para trabalhar com bits individuais de um valor decimal, bem como seu próprio conjunto de métodos para realizar algumas operações matemáticas adicionais.
BigInteger
System.Numerics.BigInteger é um tipo imutável que representa um número inteiro arbitrariamente grande cujo valor, em teoria, não tem limites superior ou inferior.
Os métodos do tipo BigInteger são estreitamente paralelos aos dos outros tipos integrais.
Complexo
O tipo System.Numerics.Complex representa um número complexo, ou seja, um número com uma parte de número real e uma parte de número imaginário
Ele suporta um conjunto padrão de aritméticos, comparação, igualdade, conversão explícita e operadores de conversão implícita, bem como métodos matemáticos, algébricos e trigonométricos.
SIMD
O namespace Numerics inclui um conjunto de tipos de vetores habilitados para SIMD para .NET Core.
O SIMD permite que algumas operações sejam paralelizadas no nível do hardware, o que resulta em grandes melhorias de desempenho em aplicativos matemáticos, científicos e gráficos que realizam cálculos sobre vetores.
Os tipos de vetor habilitados para SIMD no .NET Core incluem o seguinte -
Tipos System.Numerics.Vector2, System.Numerics.Vector3 e System.Numerics.Vector4, que são vetores de 2, 3 e 4 dimensões do tipo Único.
A estrutura Vector <T> que permite criar um vetor de qualquer tipo numérico primitivo. Os tipos numéricos primitivos incluem todos os tipos numéricos no namespace System, exceto Decimal.
Dois tipos de matriz, System.Numerics.Matrix3 × 2, que representa uma matriz 3 × 2; e System.Numerics.Matrix4 × 4, que representa uma matriz 4 × 4.
O tipo System.Numerics.Plane, que representa um plano tridimensional, e o tipo System.Numerics.Quaternion, que representa um vetor usado para codificar rotações físicas tridimensionais.