.NET Core - Numerik
.NET Core unterstützt die standardmäßigen numerischen Integral- und Gleitkomma-Grundelemente. Es werden auch die folgenden Typen unterstützt:
System.Numerics.BigInteger ist ein integraler Typ ohne Ober- oder Untergrenze.
System.Numerics.Complex ist ein Typ, der komplexe Zahlen darstellt.
Eine Reihe von SIMD-fähigen Vektortypen (Single Instruction Multiple Data) im System.Numerics-Namespace.
Integrale Typen
.NET Core unterstützt sowohl vorzeichenbehaftete als auch vorzeichenlose Ganzzahlen mit unterschiedlichen Bereichen von einem Byte bis zu acht Bytes. Alle Ganzzahlen sind Werttypen.
Die folgende Tabelle zeigt die Integraltypen und ihre Größe.
Art | Signiert / nicht signiert | Größe (Bytes) | Mindestwert | Höchster Wert |
---|---|---|---|---|
Byte | Ohne Vorzeichen | 1 | 0 | 255 |
Int16 | Unterzeichnet | 2 | -32.768 | 32.767 |
Int32 | Unterzeichnet | 4 | -2.147.483.648 | 2,147,483,647 |
Int64 | Unterzeichnet | 8 | -9.223.372.036.854.775.808 | 9,223,372,036,854,775,807 |
SByte | Unterzeichnet | 1 | -128 | 127 |
UInt16 | Ohne Vorzeichen | 2 | 0 | 65.535 |
UInt32 | Ohne Vorzeichen | 4 | 0 | 4,294,967,295 |
UInt64 | Ohne Vorzeichen | 8 | 0 | 18.446.744.073.709.551.615 |
Jeder Integraltyp unterstützt einen Standardsatz von Operatoren für Arithmetik, Vergleich, Gleichheit, explizite Konvertierung und implizite Konvertierung.
Sie können auch mit den einzelnen Bits in einem ganzzahligen Wert arbeiten, indem Sie die System.BitConverter-Klasse verwenden.
Gleitkommatypen
.NET Core enthält drei primitive Gleitkommatypen, die in der folgenden Tabelle aufgeführt sind.
Art | Größe (Bytes) | Mindestwert | Höchster Wert |
---|---|---|---|
Doppelt | 8 | −1.79769313486232e308 | 1.79769313486232e308 |
Single | 4 | −3.402823e38 | 3.402823e38 |
Dezimal | 16 | −79,228,162,514,264,337,593,5 43,950,335 | 79,228,162,514,264,337,593,543,9 50,335 |
Jeder Gleitkommatyp unterstützt einen Standardsatz von Operatoren für Arithmetik, Vergleich, Gleichheit, explizite Konvertierung und implizite Konvertierung.
Sie können auch mit den einzelnen Bits in Doppel- und Einzelwerten arbeiten, indem Sie die BitConverter-Klasse verwenden.
Die Dezimalstruktur verfügt über eigene Methoden, Decimal.GetBits und Decimal.Decimal (Int32 ()), um mit den einzelnen Bits eines Dezimalwerts zu arbeiten, sowie über eigene Methoden zum Ausführen einiger zusätzlicher mathematischer Operationen.
BigInteger
System.Numerics.BigInteger ist ein unveränderlicher Typ, der eine beliebig große Ganzzahl darstellt, deren Wert theoretisch keine oberen oder unteren Grenzen hat.
Die Methoden des BigInteger-Typs sind eng parallel zu denen der anderen Integraltypen.
Komplex
Der System.Numerics.Complex-Typ repräsentiert eine komplexe Zahl, dh eine Zahl mit einem reellen Zahlenteil und einem imaginären Zahlenteil
Es unterstützt einen Standardsatz von Operatoren für Arithmetik, Vergleich, Gleichheit, explizite Konvertierung und implizite Konvertierung sowie mathematische, algebraische und trigonometrische Methoden.
SIMD
Der Numerics-Namespace enthält eine Reihe von SIMD-fähigen Vektortypen für .NET Core.
Mit SIMD können einige Vorgänge auf Hardwareebene parallelisiert werden, was zu enormen Leistungsverbesserungen bei mathematischen, wissenschaftlichen und grafischen Apps führt, die Berechnungen über Vektoren durchführen.
Die SIMD-fähigen Vektortypen in .NET Core umfassen Folgendes:
System.Numerics.Vector2-, System.Numerics.Vector3- und System.Numerics.Vector4-Typen, bei denen es sich um 2-, 3- und 4-dimensionale Vektoren vom Typ Single handelt.
Die Vektor <T> -Struktur, mit der Sie einen Vektor eines beliebigen primitiven numerischen Typs erstellen können. Die primitiven numerischen Typen enthalten alle numerischen Typen im System-Namespace mit Ausnahme von Decimal.
Zwei Matrixtypen, System.Numerics.Matrix3 × 2, die eine 3 × 2-Matrix darstellen; und System.Numerics.Matrix4 × 4, die eine 4 × 4-Matrix darstellt.
Der Typ System.Numerics.Plane, der eine dreidimensionale Ebene darstellt, und der Typ System.Numerics.Quaternion, der einen Vektor darstellt, der zum Codieren dreidimensionaler physikalischer Rotationen verwendet wird.