Hallo Community
Ich habe mir kurz die Zeit genommen die UI128 / I128 Struct in .Net 6.0 zu programmieren.
Die wichtigsten Operationen sind schon mal drin. Weitere können gerne noch selber nachgefügt werden.
Vorläufig gibt es Sie nur als Binary. Den Code werde ich aber auch noch einfügen, jedoch später.
Freundliche Grüsse
exc-jdbi
Name:
UIntX 2022
Besteht aus:
I128 Signed Datentype 16 Byte
UI128 Unsigned Datentype 16 Byte
Verwendete Programmiersprache(n) und IDE(s):
Visual Studio: 2022
Dll: .Net 6.0 - C#
Test-Konsole: .Net 6.0 - C# / VB.NET
Systemanforderungen:
Windows 10
Lizenz/Weitergabe:
Freeware; Closed
Darf beliebig weitergegeben werden. Code folgt noch.
Anwendung:
Siehe Test-Konsole.
UIntX bzw. UI128 / I128 kann verwendet werden wie eine normaler primitiver Datentyp , wird jedoch von VS nicht als Primitive erkannt.
In I128 wird nichts gerechnet, und ist immer eine Dezimale-Repräsentation von UI128. Damit das funktioniert, wird UI128 als 2-Komplement herangezogen.
Das kann man sich so vorstellen. Von
Bemerkung
Die hier vorgestellten Datentypen sind nach alter "Tradition" aufgebaut, wobei ich hier auch den BigInteger für die Konvertierungen (nicht aber für die Mathematik selber) und teils Prüfungen der oberen wie auch der unteren Grenzen hinzugezogen habe.
Wer sich selber solche Datentypen, jedoch ohne BigInteger machen möchte, dem empfehle ich den BigInteger wirklich erst am Schluss einzubauen. Es wäre genau der gleiche Aufbau wie bei mir, jedoch mit ein paar wenigen Methoden mehr, die die Nutzung des BigInteger schlussendlich erübrigen.
Mit der neuen Framwork-Version können solche Konstrukte dann mit der "Generic Math" gelöst werden.
devblogs.microsoft.com/dotnet/dotnet-7-generic-math/
Ich selber bin schon ganz gespannt darauf, was das neue Werkzeug UInt128 / I128 alles bietet, und wie die Laufeigenschaften sind.
learn.microsoft.com/de-de/dotnet/api/system.int128
learn.microsoft.com/de-de/dotnet/api/system.uint128
UPDATE:
- UIntX_V1.zip Version 1.0.0.1, neu mit UI256 / I256.
- UIntX_V2.zip Version 1.0.0.1, neu mit UI256 / I256 - UI512 / I512.
Ich habe mir kurz die Zeit genommen die UI128 / I128 Struct in .Net 6.0 zu programmieren.
Die wichtigsten Operationen sind schon mal drin. Weitere können gerne noch selber nachgefügt werden.
Vorläufig gibt es Sie nur als Binary. Den Code werde ich aber auch noch einfügen, jedoch später.
Freundliche Grüsse
exc-jdbi
Name:
UIntX 2022
Besteht aus:
I128 Signed Datentype 16 Byte
UI128 Unsigned Datentype 16 Byte
Verwendete Programmiersprache(n) und IDE(s):
Visual Studio: 2022
Dll: .Net 6.0 - C#
Test-Konsole: .Net 6.0 - C# / VB.NET
Systemanforderungen:
Windows 10
Lizenz/Weitergabe:
Freeware; Closed
Darf beliebig weitergegeben werden. Code folgt noch.
Anwendung:
Siehe Test-Konsole.
UIntX bzw. UI128 / I128 kann verwendet werden wie eine normaler primitiver Datentyp , wird jedoch von VS nicht als Primitive erkannt.
In I128 wird nichts gerechnet, und ist immer eine Dezimale-Repräsentation von UI128. Damit das funktioniert, wird UI128 als 2-Komplement herangezogen.
Das kann man sich so vorstellen. Von
0 - 2^127-1
sind die ganz normalen positiven Zahlen, die I128 auch verwendet. Die Zahlen in UI128 von 2^127 - 2^128-1
sind die negativen Zahlen von I128.Bemerkung
Die hier vorgestellten Datentypen sind nach alter "Tradition" aufgebaut, wobei ich hier auch den BigInteger für die Konvertierungen (nicht aber für die Mathematik selber) und teils Prüfungen der oberen wie auch der unteren Grenzen hinzugezogen habe.
Wer sich selber solche Datentypen, jedoch ohne BigInteger machen möchte, dem empfehle ich den BigInteger wirklich erst am Schluss einzubauen. Es wäre genau der gleiche Aufbau wie bei mir, jedoch mit ein paar wenigen Methoden mehr, die die Nutzung des BigInteger schlussendlich erübrigen.
Mit der neuen Framwork-Version können solche Konstrukte dann mit der "Generic Math" gelöst werden.
devblogs.microsoft.com/dotnet/dotnet-7-generic-math/
Ich selber bin schon ganz gespannt darauf, was das neue Werkzeug UInt128 / I128 alles bietet, und wie die Laufeigenschaften sind.
learn.microsoft.com/de-de/dotnet/api/system.int128
learn.microsoft.com/de-de/dotnet/api/system.uint128
UPDATE:
- UIntX_V1.zip Version 1.0.0.1, neu mit UI256 / I256.
- UIntX_V2.zip Version 1.0.0.1, neu mit UI256 / I256 - UI512 / I512.
Dieser Beitrag wurde bereits 8 mal editiert, zuletzt von „exc-jdbi“ ()