warum ist Byte.b nicht 8 Bit
Verfasst: 01.03.2025 01:55
Hallo Forum, ich mal wieder.
Laut Hilfe Basic Typen sollte ein Byte (1 Byte) sein, also 8 Bit
ich wundere mich dass empfangene Bytes an der seriellen Schnittstelle nicht gefiltert werden können.
ich dimensioniere ein Array
nach dem Empfang der Daten muss ich $EE herausfiltern, was aber nie geschieht !?
ich hab jetzt ein kleines Programm geschieben um ein Byte anzuzeigen...
Erwarten würde ich jetzt als Ausgabe
StartByte.a = EE
StartByteB.b = EE
die Ausgabe zeigt aber:
StartByte.a = EE
StartByteB.b = FFFFFFFFFFEE
das bedeutet das ein Byte 64 Bit (8 Bytes) lang ist, und nicht wie in der Hilfe 1 Byte = 8 Bit
wenn ich jetzt vergleiche
if EmpfBytes.b(i) = StartByteB.b
dann funktioniert das nicht weil ja scheinbar 64 Bit verglichen werden
Ist das ein Fehler in PureBasic ?
Gruß z3alf
Laut Hilfe Basic Typen sollte ein Byte (1 Byte) sein, also 8 Bit
Code: Alles auswählen
Name | Erweiterung | Speicherverbrauch | Bereich
Byte | .b | 1 Byte | -128 bis +127
Ascii| .a | 1 Byte | 0 bis +255
ich dimensioniere ein Array
Code: Alles auswählen
Global Dim EmpfBytes.b(8096)
ich hab jetzt ein kleines Programm geschieben um ein Byte anzuzeigen...
Code: Alles auswählen
EnableExplicit
#Zeilenumbruch$ = Chr(13) + Chr(10)
Global StartByte.a = $EE
Global StartByteB.b = $EE
Global testtext$ = "StartByte.a = " + Hex(StartByte.a) + #Zeilenumbruch$ + "StartByteB.b = " + Hex(StartByteB.b)
MessageRequester("Byte Demo", testtext$, #PB_MessageRequester_Ok | #PB_MessageRequester_Info)
StartByte.a = EE
StartByteB.b = EE
die Ausgabe zeigt aber:
StartByte.a = EE
StartByteB.b = FFFFFFFFFFEE
das bedeutet das ein Byte 64 Bit (8 Bytes) lang ist, und nicht wie in der Hilfe 1 Byte = 8 Bit
wenn ich jetzt vergleiche
if EmpfBytes.b(i) = StartByteB.b
dann funktioniert das nicht weil ja scheinbar 64 Bit verglichen werden

Ist das ein Fehler in PureBasic ?
Gruß z3alf