vorzeichenlose Datentypen

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

vorzeichenlose Datentypen

Beitrag von Thorium »

Hallo ermal,

ich bin blutiger Anfänger in PB und würde gerne wissen ob es in PB vorzeichenlose Datentypen gibt (im Handbuch hab ich keine gefunden).
Ich bräuchte vorallem einen vorzeichenlosen Byte-Datentyp (0-255), da ich Dateiformate auslesen will, welche Bytewerte im Header haben.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
benny
Beiträge: 383
Registriert: 29.08.2004 09:18
Wohnort: Am Ende des www's
Kontaktdaten:

Re: vorzeichenlose Datentypen

Beitrag von benny »

Thorium hat geschrieben:Hallo ermal,

ich bin blutiger Anfänger in PB und würde gerne wissen ob es in PB
vorzeichenlose Datentypen gibt (im Handbuch hab ich keine gefunden).
Ich bräuchte vorallem einen vorzeichenlosen Byte-Datentyp (0-255), da ich
Dateiformate auslesen will, welche Bytewerte im Header haben.
@Thorium:

AFAIK gibt es in PB selber keine vorzeichenlosen Datentypen.
Aber Du kannst Dir ja mal DROOPY's UserLib anschauen, die enthält meines
Wissens eine Funktion namens Convert Byte/Word signed to unsigned.

Den entsprechenden Thread und Downloadlink findest Du hier :

http://forums.purebasic.com/german/viewtopic.php?t=3246


Im englishen Forum wurde mal folgende Procedure zum Thema gepostet:

Code: Alles auswählen

Procedure SignedBinaryToUnsigned(byte.b)
  ProcedureReturn byte & $ff
EndProcedure 
Vielleicht hilft das Dir ein wenig weiter :?:
So long,
benny!
.
nur t0te f1sche schw1mmen m1t dem str0m - 00100 !
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Ja danke, das hilft mir weiter.
Dadurch wird die Routine zum auslesen zwar langsamer als mit nem echten unsigned aber das ist in dem Fall nicht so wichtig.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8809
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag von NicTheQuick »

Eigentlich reicht schon der folgende Code:

Code: Alles auswählen

ASCII.l = ReadByte() & $FF
Dann braucht man keine Procedure und merklich langsamer ist es auch nicht.

Wenn du Geschwidigkeit willst, empfehle ich dir Rings' FastFile-Lib, die du in der PureArea in der Rubrik UserLibs findest.
Antworten