2010-10-08 3 views
1

alt textproblèmes de vidage binaire xxd

est la sortie ci-dessus dans le format qui devrait être attendu de xxd ou ne la présence des personnages bizzare à droite suggèrent que je l'ai fait quelque chose de mal?

Je tente de sérialiser une liste simple liée et c'est la sortie que je reçois. Ne pas supprimer le caractère sentinal "\ 0" de la sérialisation provoquer l'erreur?

Répondre

1

Je suppose que vous sérialisation comme binaire non comme chaînes, donc ceci est normal. Chaque deux chiffres hexadécimaux à gauche correspondent à un caractère sur la droite. C'est un octet, c'est-à-dire huit bits. Certains caractères sont imprimables (voir ci-dessous le tableau ASCII), d'autres non (représentés par des points).

ASCII Table - | hex value - name/char | 

| 00 nul| 01 soh| 02 stx| 03 etx| 04 eot| 05 enq| 06 ack| 07 bel| 
| 08 bs | 09 ht | 0a nl | 0b vt | 0c np | 0d cr | 0e so | 0f si | 
| 10 dle| 11 dc1| 12 dc2| 13 dc3| 14 dc4| 15 nak| 16 syn| 17 etb| 
| 18 can| 19 em | 1a sub| 1b esc| 1c fs | 1d gs | 1e rs | 1f us | 
| 20 sp | 21 ! | 22 " | 23 # | 24 $ | 25 % | 26 & | 27 ' | 
| 28 (| 29 ) | 2a * | 2b + | 2c , | 2d - | 2e . | 2f/| 
| 30 0 | 31 1 | 32 2 | 33 3 | 34 4 | 35 5 | 36 6 | 37 7 | 
| 38 8 | 39 9 | 3a : | 3b ; | 3c < | 3d = | 3e > | 3f ? | 
| 40 @ | 41 A | 42 B | 43 C | 44 D | 45 E | 46 F | 47 G | 
| 48 H | 49 I | 4a J | 4b K | 4c L | 4d M | 4e N | 4f O | 
| 50 P | 51 Q | 52 R | 53 S | 54 T | 55 U | 56 V | 57 W | 
| 58 X | 59 Y | 5a Z | 5b [ | 5c \ | 5d ] | 5e^| 5f _ | 
| 60 ` | 61 a | 62 b | 63 c | 64 d | 65 e | 66 f | 67 g | 
| 68 h | 69 i | 6a j | 6b k | 6c l | 6d m | 6e n | 6f o | 
| 70 p | 71 q | 72 r | 73 s | 74 t | 75 u | 76 v | 77 w | 
| 78 x | 79 y | 7a z | 7b { | 7c | | 7d } | 7e ~ | 7f del| 
1

Oui, c'est prévu. Ces caractères dans la droite représentent juste les mêmes octets dans votre entrée que vous avez des codes hexadécimaux dans la gauche. Les octets avec des valeurs représentant des caractères imprimables sont affichés en utilisant le caractère correspondant, les autres sont remplacés par ..

1

La sortie est de la forme:

Adresse: hexadecimal_data ASCII_data

Les données hexadécimal et ASCII sont les mêmes, mais affichés différemment. Dans les données ASCII, seuls certains octets sont sortis en tant que caractères imprimables car de nombreuses valeurs d'octets ne sont pas imprimables et d'autres imprimables gâchent le formatage des données imprimées.

Il n'y a aucun moyen pour moi de dire si c'est correct ou incorrect pour votre liste liée puisque je n'ai aucune idée de ce à quoi devraient ressembler vos données. La meilleure façon de tester le code de sérialisation est de le relire. Vous aurez probablement aussi besoin d'écrire du code qui affiche le code dans un format facile à regarder et de brancher ce code dans votre graveur et votre lecteur de sorte que vous puissiez voir différences dans les données là-bas.