tags:

views:

33

answers:

3

alt text

Is the above output in the format that should be expected from xxd or does the presence of the bizzare characters on the right suggest i've done something wrong?

I'm attempting to serialise a simple linked list and that's the output i get. Would failing to remove the sentinal character "\0" from the serialisation cause the error?

+1  A: 

I'm guessing you are serializing as binary not as strings, so this is normal. Each two hex digits on the left correspond to a one character on the right. This is one byte, i.e. eight bits. Some characters are printable (see ASCII table bellow), some are not (shown as dots).

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|
Nikolai N Fetissov
+1  A: 

Yes, it is expected. Those characters in the right just represent the same bytes in your input you have hex codes for in the left. Bytes with values representing printable characters are shown using the corresponding character, others are substituted with . .

usta
+1  A: 

The output is of the form:

address: hexadecimal_data ASCII_data

The hexadecimal and ASCII data are the same, but displayed differently. In the ASCII data only certain bytes are output as their printable characters since many byte values are not printable and some that are printable would mess up the formatting of printed data.

There is no way for me to tell if this is correct or incorrect for your linked list since I have no idea what your data should look like. The best way to test serialization code is to read it back in. You will probably also want to write code that displays the code in an easy to look at format and plug that code into your writer and your reader so that you can look at for differences in the data there.

nategoose