PBXB64 fügt Wide-Integer-Typen mit fester Breite über den Standard 8/16/32/64-Bit hinaus hinzu Bereich. Diese Typen werden mit nativem Inline-x64-Code für Arithmetik implementiert. bitweise und Vergleichsoperationen – keine Laufzeitbibliotheksaufrufe für das Hot Wege. Sie werden für Kryptografie, Hashing, große Zähler und wissenschaftliche Zwecke verwendet Berechnen, wo sonst ein 64-Bit-Überlauf auftreten würde.
PBXB64 fügt Wide-Integer-Typen mit fester Breite über den Standard 8/16/32/64-Bit hinaus hinzu Bereich. Diese Typen werden mit nativem Inline-x64-Code für Arithmetik implementiert. bitweise und Vergleichsoperationen – keine Laufzeitbibliotheksaufrufe für das Hot Wege. Sie werden für Kryptografie, Hashing, große Zähler und wissenschaftliche Zwecke verwendet Berechnen, wo sonst ein 64-Bit-Überlauf auftreten würde.
Typ: Datentypfamilie | Kategorie: Numerische Typen
PBXB64-Status: AVAILABLE
PBXB64-Zertifizierung: [ZERTIFIZIERT GETESTET]
| Typ | Alias | Größe | Signiert | Reichweite | Dezimalstellen |
|---|---|---|---|---|---|
INT128 | I128 | 16 Byte | ja | -2^127 .. 2^127-1 | ~38 |
UINT128 | U128 | 16 Byte | Nein | 0 .. 2^128-1 | ~39 |
INT256 | I256 | 32 Byte | ja | -2^255 .. 2^255-1 | ~77 |
UINT256 | U256 | 32 Byte | Nein | 0 .. 2^256-1 | ~78 |
INT512 | I512 | 64 Byte | ja | -2^511 .. 2^511-1 | ~154 |
UINT512 | U512 | 64 Byte | Nein | 0 .. 2^512-1 | ~155 |
Wide-Ganzzahlen werden in Little-Endian-Bytereihenfolge im zusammenhängenden Speicher gespeichert. INT128/UINT128 belegen 16 Bytes (zwei 64-Bit-Teile);
INT256/UINT256 belegen 32 Bytes (vier Glieder);
INT512/UINT512 belegen 64 Bytes (acht Glieder). Einheimische
sind auf 16 Bytes stapelorientiert.
| Kategorie | Operationen | Hinweise |
|---|---|---|
| Arithmetik | +, -, *, \ (int div), MOD | 128-Bit-Multifunktionsanwendungen mul/imul mit adc; 256/512 nutzen Schulbuch. |
| Bitweise | AND, OR, XOR, NOT | Gehen Sie Glied für Glied vor. |
| Schichten | SHL, SHR, SAR | Verwendenshld/shrd für Querverlagerungen. |
| Vergleich | =, <>, <, <=, >, >= | Rückgaben -1 (wahr) / 0 (falsch). |
| Konvertierung | nach/von STRING, QUAD, LONG | Analyse/Formatierung von Dezimalzeichenfolgen. |
LOCAL a AS INT128 LOCAL b AS U128 LOCAL c AS INT256 LOCAL d AS UINT512 a = 2^100 ' fits in INT128 (max ~3.4e38) b = 2^128 - 1 ' largest UINT128 c = a * a ' 2^200, still fits in INT256 d = c * c ' 2^400, fits in INT512 PRINT a ' decimal string output IF a > b THEN PRINT "a is bigger"
| Brauchen | Benutzen | Warum |
|---|---|---|
| Feste Breite, bekannte Grenze ≤ 512 Bit | INT128..UINT512 | Schneller: keine Zuordnung, keine Längenverfolgung, Inline-Assembly. |
| Unbegrenzte Größe | UNL | Wächst nach Bedarf; langsamer pro Operation, aber nie ein Überlauf. |
| Kryptografisches 256-Bit (z. B. secp256k1) | UINT256 | Exakte Passform, konstante Zeitfähigkeit. |
| SHA-512-Zwischenzustände | UINT512 | Entspricht der nativen Breite des Algorithmus. |
QUAD (64-Bit-signiert) ist der größte Standard PBXB64
Ganzzahl. Die breiten Typen erstrecken sich nach oben QUAD:
QUAD (64-bit) < INT128 (128-bit) < INT256 (256-bit) < INT512 (512-bit)
|
+-- UNL (unbounded, grows dynamically)
Typ- und Variablenseiten sollen Breite, Vorzeichen, Initialisierung, Gültigkeitsbereich, Suffixregeln und x64-Layout dokumentieren. Beispiele sollen gespeicherten Wert, ausgelesenen Wert und Konvertierungs- oder Überlaufverhalten belegen.
Nennen Sie, ob Deklarationen #DIM ALL, AS-Klauseln, Suffixe oder ausdrückliche Sichtbarkeit benötigen. Trennen Sie lokalen, statischen, globalen und thread-lokalen Speicher.
Prüfen Sie Pointer-, Handle- und LONG-Annahmen beim Wechsel von 32-Bit-PB-Code zu PBXB64.
Wenn eine Seite mehrere verwandte Formen gruppiert, sollte sie sagen, welche Form die Speicherbreite festlegt, welche nur die Deklarationssyntax ändert und welche nur historischen Charakter hat. Eine kleine Zuordnung von Familienbegriff zu den konkreten Typseiten macht die Seite beim Portieren deutlich nützlicher.