【问题标题】:xxd binary dump problemsxxd 二进制转储问题
【发布时间】:2010-10-08 17:44:55
【问题描述】:

上面的输出是 xxd 所期望的格式,还是右侧出现的奇怪字符表明我做错了什么?

我正在尝试序列化一个简单的链表,这就是我得到的输出。未能从序列化中删除标记字符“\0”会导致错误吗?

【问题讨论】:

    标签: c hexdump


    【解决方案1】:

    我猜你是在序列化为 binary 而不是 strings,所以这是正常的。左边的每两个十六进制数字对应右边的一个字符。这是一个字节,即八位。有些字符是可打印的(参见下面的 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|
    

    【讨论】:

      【解决方案2】:

      是的,这是意料之中的。右边的那些字符只代表你输入中的相同字节,你在左边有十六进制代码。具有表示可打印字符的值的字节使用相应的字符显示,其他的则替换为.

      【讨论】:

        【解决方案3】:

        输出格式为:

        地址:hexadecimal_data ASCII_data

        十六进制和 ASCII 数据相同,但显示方式不同。在 ASCII 数据中,只有某些字节作为它们的可打印字符输出,因为许多字节值是不可打印的,而一些可打印的会破坏打印数据的格式。

        我无法判断这对于您的链接列表是正确还是不正确,因为我不知道您的数据应该是什么样子。测试序列化代码的最佳方法是将其读回。您可能还希望编写以易于查看的格式显示代码的代码,并将该代码插入您的编写器和阅读器,以便您查看那里的数据差异。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-08-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-03-28
          • 2021-01-03
          • 2020-07-25
          相关资源
          最近更新 更多