PBXB64 Datentypen

26 Datentypen PBXB64-Erweiterung

PBXB64 unterstützt alle Standard-PowerBASIC-Typen plus 6 neue Typen, die in keinem anderen PB-Compiler zu finden sind: DEC128 (18-Stellen-Dezimal), RATIONAL (exakte Arithmetik), VARIANT (COM-kompatibel), OBJECT (COM-Referenz), GUID (128-Bit-UUID) und 128/256/512-Bit breite Ganzzahlen.

Vollständige Typ-Referenz

TypGrößeBeschreibungStatus
BYTE8-BitVorzeichenlose Ganzzahl (0-255)Standard
WORD16-BitVorzeichenlose Ganzzahl (0-65535)Standard
INTEGER16-BitVorzeichenbehaftete Ganzzahl (-32768 bis 32767)Standard
LONG64-BitVorzeichenbehaftete Ganzzahl (PBXB64-Standard ist 64-Bit)Standard
DWORD32-BitVorzeichenlose GanzzahlStandard
QUAD64-BitVorzeichenbehaftete Ganzzahl (Alias)Standard
SINGLE32-BitIEEE-754 FloatStandard
DOUBLE64-BitIEEE-754 DoubleStandard
EXTENDED80-BitErweiterte Präzision FloatStandard
CURRENCY64-BitFestkomma (×10000)Standard
CURRENCYX16-ByteErweitertes Festkomma (V12)NEU
STRINGDynamischANSI variable LängeStandard
WSTRINGDynamischWide-Character (UTF-16) StringStandard
STRINGZDynamischNull-terminierter ANSI-StringNEU
WSTRINGZDynamischNull-terminierter Wide-StringNEU
DEC12816-ByteDezimales Festkomma, 18-Stellen-PräzisionNEU
RATIONAL16-ByteExakte rationale Arithmetik (int64 Zähler/Nenner, auto-GGT)NEU
VARIANT16-ByteCOM-kompatibel (VT_I8, VT_R8, VT_BSTR)NEU
OBJECT8-ByteCOM-Objekt-ReferenzNEU
GUID16-Byte128-Bit UUIDNEU
128-Bit int16-ByteInline 128-Bit ArithmetikNEU
256-Bit int32-ByteInline 256-Bit ArithmetikNEU
512-Bit int64-ByteInline 512-Bit ArithmetikNEU

DEC128 - 18-Stellen-Dezimal-Präzision

PBXB64-Erweiterung Ein 16-Byte dezimales Festkomma-Typ mit 18-Stellen-Präzision. Ideal für finanzielle Berechnungen, bei denen binäre Gleitkomma-Rundungsfehler inakzeptabel sind.

DEC128 - Finanzielle Präzision
FUNCTION PBMAIN() AS LONG LOCAL price AS DEC128 LOCAL tax AS DEC128 LOCAL total AS DEC128 price = 19.99 ' Exaktes Dezimal tax = 0.07 ' Exakte 7% total = price * (1 + tax) ' Ergebnis ist exakt: 21,3893, nicht 21,389299999999996 PRINT "Gesamt: "; total FUNCTION = 0 END FUNCTION

DEC128 speichert Werte als Dezimalziffern, nicht als binäre Brüche. 19,99 + 0,01 ergibt exakt 20,00, nicht 19,999999999999996.

RATIONAL - Exakte Arithmetik

PBXB64-Erweiterung Speichert Zahlen als int64-Zähler/Nenner-Paare mit automatischer GGT-Normalisierung. 1/3 + 1/3 = 2/3 exakt. Keine Rundung, niemals.

RATIONAL - Exakte Brüche
FUNCTION PBMAIN() AS LONG LOCAL a AS RATIONAL LOCAL b AS RATIONAL LOCAL c AS RATIONAL a = 1/3 ' Gespeichert als 1/3, nicht 0,333... b = 1/6 ' Gespeichert als 1/6 c = a + b ' Ergebnis: 1/2 exakt PRINT "1/3 + 1/6 = "; c ' Druckt 1/2 FUNCTION = 0 END FUNCTION

RATIONAL reduziert Brüche automatisch (GGT-Normalisierung) und unterstützt alle Arithmetik-Operationen: +, -, *, /, Vergleich, Konvertierung zu/von DECIMAL/DOUBLE.

VARIANT - COM-kompatible Werte

PBXB64-Erweiterung Vollständige VARIANT-Implementierung mit VT_EMPTY, VT_I8, VT_R8, VT_CY, VT_BOOL, VT_BSTR. Unterstützt Skalar, feste Arrays und dynamische Arrays mit REDIM PRESERVE.

VARIANT - Dynamischer Typ
FUNCTION PBMAIN() AS LONG LOCAL v AS VARIANT v = 42 ' VT_I8 PRINT VARIANTVT(v) ' 20 (VT_I8) v = "Hello" ' VT_BSTR PRINT VARIANTVT(v) ' 8 (VT_BSTR) v = 3.14159 ' VT_R8 PRINT VARIANTVT(v) ' 5 (VT_R8) FUNCTION = 0 END FUNCTION

VARIANT-Arrays unterstützen elementweise Lebenszyklus-Verwaltung. REDIM PRESERVE führt tiefe Element-Kopien durch.

Breite Ganzzahlen - 128 / 256 / 512 Bit

PBXB64-Erweiterung Inline-Arithmetik auf 128, 256 und 512-Bit-Ganzzahlen. Keine Bibliotheksaufrufe, keine Heap-Allokation - reine Register-basierte Operationen.

128-Bit-Ganzzahl-Arithmetik
FUNCTION PBMAIN() AS LONG LOCAL a AS __int128 LOCAL b AS __int128 LOCAL c AS __int128 a = 170141183460469231731687303715884105727 ' 2^127-1 b = 2 c = a + b ' 170141183460469231731687303715884105729 PRINT c FUNCTION = 0 END FUNCTION

Breite Ganzzahlen unterstützen Addition, Subtraktion, Multiplikation, Division, Vergleich und Bitweise Operationen. Alles inline im x64-Backend ohne externe Bibliotheken.

Probieren Sie es selbst

CLI - kompilieren und ausführen
REM DEC128-Präzisionstest PBXB64 test_dec128.pb -o test_dec128.exe test_dec128.exe REM RATIONALE exakte Arithmetik PBXB64 test_rational.pb -o test_rational.exe test_rational.exe REM VARIANT-Typwechsel PBXB64 test_variant.pb -o test_variant.exe test_variant.exe REM 128-Bit-Ganzzahl PBXB64 test_128bit.pb -o test_128bit.exe test_128bit.exe

Alle Testdateien befinden sich in examples/basic/ - kompilieren und ausführen zum Verifizieren.

In Zahlen

23Standard-PB-Typen
6PBXB64-Erweiterungen
512Maximale Bit-Breite
18DEC128 Stellen

Verwandte Features

Zurück zur Feature-Liste