Data + DataSection

Anfängerfragen zum Programmieren mit PureBasic.
walter741
Beiträge: 68
Registriert: 26.10.2008 09:21
Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
Wohnort: Wien

Data + DataSection

Beitrag von walter741 »

Hallo

Ein JPG Bild beginnt mit der Bytefolge FF D8 FF E0..........usw laut Hex-Editor
Im Internet wir dies auch bestätigt.

Wird ein Bild in einen Data-Block gesteckt, so beginnt dieser aber mit E0 FF D8 FF .......usw

Code: Alles auswählen

   Data.l $E0FFD8FF, $464A1000, $01004649, $60000101, $00006000, $4300DBFF, $06060800, $08050607 
   Data.l $09070707, $0C0A0809, $0B0C0D14, $12190C0B, $1D140F13, $1D1E1F1A, $201C1C1A, $20272E24 
   Data.l $1C232C22, $2937281C, $34313................................... 
Alle Byts in einem Blöcke sind vertauscht.
1.Byte mit 4.Byte und 2.Byte mit 3.Byte
Das Vertauschen funktioniert auch, aber ich weiß nicht warum?
Wo ist der Unterschied zwischen dem Auslesen einer Datei und einer Data-Liste?
Oder wo ist mein Denkfehler?
Die PB-Hilfe ist hier auch sehr zurückhaltend.

Wieder einmal auf Eure Hilfe angewiesen

Walter

PB4.40 und XP
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Data + DataSection

Beitrag von Thorium »

benutze .b oder .a anstatt .l

Es handelt sich hier um die sogenannte Byteorder.
Bevor ich mir die Finger wundtippe, hier kannst du dich etwas dazu belesen: http://de.wikipedia.org/wiki/Byte-Reihenfolge
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Data + DataSection

Beitrag von STARGÅTE »

Das ist auch der Grund warum zB die Quad: 'Beispiel' (PB Syntax um Zeichen in Bytes zu wanden)
als String ausgelesen genau verdreht ist:

Code: Alles auswählen

Quad.q = 'Beispiel'
Debug Quad
Debug PeekS(@Quad,8)
Das nur nebenbei :wink:
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
walter741
Beiträge: 68
Registriert: 26.10.2008 09:21
Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
Wohnort: Wien

Re: Data + DataSection

Beitrag von walter741 »

Hallo

Danke für Eure Antworten.

Diese helfen ein wenig weiter aber

jetzt weiß ich, das ich eigentlich nichts weiß.

lg Walter
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Re: Data + DataSection

Beitrag von Thorium »

walter741 hat geschrieben: Diese helfen ein wenig weiter aber

jetzt weiß ich, das ich eigentlich nichts weiß.
Ok, vieleicht ist der artikel in wikipedia etwas zu kompliziert geschrieben. Ich versuchs mal etwas einfacher zu erklären.

Genrell setzen sich Zahlen aus blöcken zusammen. Im dezimalsystem haben wir 10 einheiten pro block, 0-9. Um größere zahlen darzustellen schreien wir einfach mehrere blöcke hintereinander. z.b. 26. Aber mit der schribweise 26 könnte genausogut 62 gemeint sein, wenn man nicht weis welcher block der höherwertige ist. Deswegen hat man sich allgemein darauf geeinigt das zahlen immer mit dem höchstwertigen block beginnen.
Das kommt uns nur so selbstverständlich vor, weil wir uns keine gedanken darüber machen. Man hätte auch genausogut festlegen können das mit dem niederwertigsten block begonnen werden muss.
In der Tat ist es sogar so das die aussprache in der deutschen sprache vertauscht ist. wir sagen sechs-und-zwanzig, auf english sagt man twenty-six.

Analog ist das beim computer genauso, nur das der kleinste block hier 1 byte ist. Es haben sich beim computer aber 2 standards behauptet, little endian (niederwertigstes byte zuerst) und big endian (höchstwertiges byte zuerst). Beim PC haben wir immer little endian. Das heisst ist eine zahl 2 byte lang, wird das niederwertige byte zuerst gespeichert und dahinter das höherwertige. liest du die beiden bytes nun getrennt aus und klebst sie dann so zusammen wie du sie ausgelesen hast, hast du die reihenfolge vertauscht.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
walter741
Beiträge: 68
Registriert: 26.10.2008 09:21
Computerausstattung: P4, 2600, 1,5GB Ram, XP SP3
Wohnort: Wien

Re: Data + DataSection

Beitrag von walter741 »

Hallo

Thorium
Danke für Deine Mühe mit dem schreiben.


STARGÅTE
Nettes Beispiel, habe einige Tropfen Schweiss vergossen.


Nochmals Danke

walter
Antworten