WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Mit frwite erstellte Datei im Hexdump analysieren

 

PaulGuenther
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.11.2008, 20:07     Titel: Mit frwite erstellte Datei im Hexdump analysieren
  Antworten mit Zitat      
Hallo,

ich hoffe das mir hier jemand weiter helfen kann!!!

Ich erstelle in Matlab wie folgt eine Datei, in der ich in unterschiedlichen Genauigkeiten Zahlenwerte abspeichere.

Code:


file = 'C:\Programme\MATLAB7\work\paul.enc';
fid = fopen(file, 'w');
fwrite(fid, 2, 'ubit8');          % Profil ID
fwrite(fid, 55, 'ubit8');
fwrite(fid, 1, 'ubit8');
fwrite(fid, 1, 'ubit2');
fwrite(fid, 25, 'ubit8');
fwrite(fid, 3, 'ubit5');
status = fclose(fid)

video2 = [];
file = 'C:\Programme\MATLAB7\work\paul.enc';
fid = fopen(file, 'r');
video2 = [video2,fread(fid, 1, 'ubit8')];
video2 = [video2,fread(fid, 1, 'ubit8')];
video2 = [video2,fread(fid, 1, 'ubit8')];
video2 = [video2,fread(fid, 1, 'ubit2')];
video2 = [video2,fread(fid, 1, 'ubit8')];
video2 = [video2,fread(fid, 1, 'ubit5')];
fclose(fid)
 


Wenn ich die Datei paul.enc in einem Hexdump-Editor öffne, dann kann ich die Werte dort irgendwie nicht wieder finden.

Code:

0x0  02 37 01 65 0C
 


Die ersten drei Werte, welche ich auch mit 8-bit abgespeichert habe, kann ich im Hesdump erkennen.

02h = 2d
37h = 55d
01h = 01d

Ab dann verstehe ich den die Hexwerte aber nicht mehr.
Da der vierte Wert mit 2 bit abgespeichert wurde, dachte ich mir, ich müsste einfach die '65' in das binäre Format umwandeln, und dann würden die ersten zwei Bits meinen Wert ( 1) wiedergeben. Dann würde ich die nächsten 8 bit und zum Schluss die letzten 5 bit betrachten und daraus meine abgespeicherten Werte lesen können.
Aber irgendwie stimmen die Hexwerte nicht nach meiner Logik.


65h = 01100101
0Ch = 00001100

Nehme ich jetzt die ersten zwei Bits von den 65h dann ergeben diese auch eine 1. Die folgenden 8 Bits (10010100) ergeben aber keine 25d sondern 148d.
Auch die nächsten 5 bits ergeben keine 3d sondern 6d.

Lese ich die Werte wieder mit fread wieder ein (siehe ersten Quellcode) dann werden diese auch wieder korrekt eingelesen.

Ich hoffe mein Problem ist klar geworden und mir kann hier jemand über meine Denkblockade hinweg helfen!!!

Schon mal vielen Dank

Paul
Private Nachricht senden Benutzer-Profile anzeigen


W31dn3r
Forum-Newbie

Forum-Newbie


Beiträge: 7
Anmeldedatum: 10.11.07
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2008, 00:33     Titel:
  Antworten mit Zitat      
Hallo,

versuch mal deine Daten mit
Code:

fid = fopen(file, 'wb');
 

zu schreiben

und
Code:

fid = fopen(file, 'rb');
 

zu lesen.

Zuletzt bearbeitet von W31dn3r am 22.11.2008, 10:07, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
PaulGuenther
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 13.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.11.2008, 01:50     Titel:
  Antworten mit Zitat      
Vielen Dank für den Tipp aber die Variante habe ich auch schon getestet.

Geändert hat es aber leider nichts!

Vielleicht gibt es ja noch andere Ideen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.