Hallo zusammen
um eine vorhande DLL richtig ansprechen zu können benötige ich
unsigned integer: C-Deklaration: UINT8 UINT16 UINT32
ich muss diese an die DLL weitergeben und bekomme diese zurück.
In der PBHilfe habe ich gelesen das PB keine unsigned int unterstützt.
Werden unsigned Integer in PB aufgenommen (vielleicht Rev. 4.03)?
Gibt es einen Trick um in PB mit unsigned Int umzugehen?
Danke
Unsigned Integer
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ob ein typ signed oder unsigned ist, ist letztendlich nur eine frage der ausgabeform.
im speicher selber verhält sich ein signed exact wie ein unsigned,
also normalerweise merkt man den unterschied nicht.
um unsigned-ausgabe zu ermöglichen, benutzt man einfach einen größeren typ,
und eine Bitwise AND-verknüpfung, um aus dem vorzeichenbit ein wertebit zu machen.
im speicher selber verhält sich ein signed exact wie ein unsigned,
also normalerweise merkt man den unterschied nicht.
um unsigned-ausgabe zu ermöglichen, benutzt man einfach einen größeren typ,
und eine Bitwise AND-verknüpfung, um aus dem vorzeichenbit ein wertebit zu machen.
Code: Alles auswählen
Debug "--- uint8 ---"
uint8.b = 224 ; > +127
Debug uint8
ausg8.w = uint8 & $FF ; größeren typen zur ausgabe benutzen
Debug ausg8
Debug "--- uint16 ---"
uint16.w = 47111 ; > +32767
Debug uint16
ausg16.l = uint16 & $FFFF ; größeren typen zur ausgabe benutzen
Debug ausg16
Debug "--- uint32 ---"
uint32.l = 3123456789 ; > +2147483647
Debug uint32
ausg32.q = uint32 & $FFFFFFFF ; größeren typen zur ausgabe benutzen
Debug ausg32
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Ich hätte gedacht, dass eine Zuweisung wie
einen "Overflow error" verursachen würde. Dass das nicht passiert, ist ja schon eine "halbe Unterstützung" für vorzeichenlose Variablen -- sehr angenehm.
Gruß, Little John
Code: Alles auswählen
uint8.b = 224 ; > +127
Gruß, Little John