2010-10-08 63 views
1

alt textXXD二進制轉儲問題

的格式爲上面的輸出應該從XXD預期或不右邊的人物的bizzare的存在建議我做錯了什麼?

我在嘗試序列化一個簡單的鏈表,這就是我得到的輸出。如果無法從序列化中刪除主要字符「\ 0」會導致錯誤?

回答

1

我猜你是作爲串行二進制作爲字符串,所以這是正常的。左側的每兩個十六進制數字對應於右側的一個字符。這是一個字節,即8位。某些字符是可打印的(請參閱ASCII表波紋管),有些不是(顯示爲點)。

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

是的,它是預期的。右邊的那些字符只是代表輸入中的相同字節,左邊是十六進制代碼。帶有表示可打印字符的值的字節使用相應的字符顯示,其他字符用.代替。

1

的輸出是下面的形式:

地址:hexadecimal_data ASCII_data

的十六進制和ASCII數據是相同的,但不同地顯示。在ASCII數據中,只有某些字節被輸出爲可打印字符,因爲許多字節值不可打印,而某些可打印的字符會打亂打印數據的格式。

因爲我不知道你的數據應該是什麼樣子,所以我無法判斷你的鏈表是否正確或不正確。測試序列化代碼的最好方法是重新讀取它。您可能還想編寫代碼,以易於查看的格式顯示代碼,並將該代碼插入到您的作者和讀者中,以便您可以查看那裏的數據有差異。