.NET Core - numeryczne

NET Core obsługuje standardowe liczbowe integralne i zmiennoprzecinkowe prymitywy. Obsługuje również następujące typy -

  • System.Numerics.BigInteger, który jest typem całkowitym bez górnej ani dolnej granicy.

  • System.Numerics.Complex to typ reprezentujący liczby zespolone.

  • Zestaw typów wektorów z włączoną funkcją Single Instruction Multiple Data (SIMD) w przestrzeni nazw System.Numerics.

Typy całkowe

NET Core obsługuje zarówno liczby całkowite ze znakiem, jak i bez znaku o różnych zakresach długości od jednego bajtu do ośmiu bajtów. Wszystkie liczby całkowite są typami wartości.

Poniższa tabela przedstawia typy całkowite i ich rozmiar;

Rodzaj Podpisano / niepodpisano Rozmiar (bajty) Minimalna wartość Maksymalna wartość
Bajt Bez podpisu 1 0 255
Int16 Podpisano 2 -32,768 32,767
Int32 Podpisano 4 -2,147,483,648 2,147,483,647
Int64 Podpisano 8 -9,223,372,036,854,775,808 9.223.372.036.854.775.807
SByte Podpisano 1 -128 127
UInt16 Bez podpisu 2 0 65,535
UInt32 Bez podpisu 4 0 4.294.967.295
UInt64 Bez podpisu 8 0 18,446,744,073,709,551,615

Każdy typ całkowity obsługuje standardowy zestaw operatorów arytmetycznych, porównania, równości, konwersji jawnej i niejawnej konwersji.

Możesz również pracować z pojedynczymi bitami w wartości całkowitej, używając klasy System.BitConverter.

Typy zmiennoprzecinkowe

NET Core zawiera trzy pierwotne typy zmiennoprzecinkowe, które są pokazane w poniższej tabeli.

Rodzaj Rozmiar (bajty) Minimalna wartość Maksymalna wartość
Podwójnie 8 −1,79769313486232e308 1.79769313486232e308
Pojedynczy 4 −3.402823e38 3.402823e38
Dziesiętny 16 −79.228.162.514.264.337.593,5 43.950.335 79,228,162,514,264,337,593,543,9 50,335
  • Każdy typ zmiennoprzecinkowy obsługuje standardowy zestaw operatorów arytmetycznych, porównania, równości, konwersji jawnej i niejawnej konwersji.

  • Możesz również pracować z pojedynczymi bitami w wartościach Double i Single, używając klasy BitConverter.

  • Struktura Decimal ma swoje własne metody, Decimal.GetBits i Decimal.Decimal (Int32 ()), służące do pracy z poszczególnymi bitami wartości dziesiętnej, a także własny zestaw metod do wykonywania niektórych dodatkowych operacji matematycznych.

BigInteger

  • System.Numerics.BigInteger jest niezmiennym typem, który reprezentuje dowolnie dużą liczbę całkowitą, której wartość w teorii nie ma górnej ani dolnej granicy.

  • Metody typu BigInteger są ściśle równoległe do metod innych typów całkowitych.

Złożony

  • Typ System.Numerics.Complex reprezentuje liczbę zespoloną, tj. Liczbę zawierającą część liczby rzeczywistej i część urojoną

  • Obsługuje standardowy zestaw operatorów arytmetycznych, porównawczych, równości, konwersji jawnej i niejawnej konwersji, a także metody matematyczne, algebraiczne i trygonometryczne.

SIMD

  • Przestrzeń nazw Numerics zawiera zestaw typów wektorów obsługujących SIMD dla platformy .NET Core.

  • SIMD umożliwia zrównoleglenie niektórych operacji na poziomie sprzętowym, co skutkuje ogromną poprawą wydajności w aplikacjach matematycznych, naukowych i graficznych, które wykonują obliczenia na wektorach.

  • Typy wektorowe z obsługą SIMD w .NET Core obejmują następujące -

    • Typy System.Numerics.Vector2, System.Numerics.Vector3 i System.Numerics.Vector4, które są dwu-, trzy- i czterowymiarowymi wektorami typu Single.

    • Struktura Vector <T>, która umożliwia tworzenie wektorów dowolnego pierwotnego typu liczbowego. Pierwotne typy liczbowe obejmują wszystkie typy liczbowe w przestrzeni nazw System, z wyjątkiem Decimal.

    • Dwa typy macierzy, System.Numerics.Matrix3 × 2, co reprezentuje macierz 3 × 2; i System.Numerics.Matrix4 × 4, co reprezentuje macierz 4 × 4.

    • Typ System.Numerics.Plane, który reprezentuje trójwymiarową płaszczyznę, oraz typ System.Numerics.Quaternion, który reprezentuje wektor używany do kodowania trójwymiarowych obrotów fizycznych.