日期:2014-05-16 浏览次数:20852 次
今天需要看16进制文件,调试中发现不对劲,经过多方对比,发现问题出 Vim 打开二进制文件时,需要加 -b 参数。
vim test.bin
:%!xxd //显示16进制
0000000: 0300 0800 3c0d 0000 0100 1c00 3f05 0000 ....<.......?... 0000010: 2700 0000 0000 0000 0000 0000 3f00 0000 '...........?... 0000020: 0000 0000 0000 0000 1a00 0000 3400 0000 ............4... 0000030: 4000 0000 4e00 0000 5a00 0000 6800 0000 @...N...Z...h... 0000040: 3f00 0000 3f00 0000 3f00 0000 3f00 0000 ?...?...?...?... 0000050: 0601 0000 1a01 0000 2e01 0000 5601 0000 ............V... 0000060: 7001 0000 3f01 0000 3f01 0000 3f01 0000 p...?...?...?... 0000070: 3f01 0000 0002 0000 1402 0000 5802 0000 ?...........X... 0000080: 3f02 0000 3f02 0000 3f02 0000 3f02 0000 ?...?...?...?... 0000090: 1603 0000 3803 0000 5a03 0000 7803 0000 ....8...Z...x... 00000a0: 3f03 0000 3f03 0000 3f03 0000 3f03 0000 ?...?...?...?... 00000b0: 1404 0000 3604 0000 7004 0000 3f04 0000 ....6...p...?...
vim -b test.bin
:%!xxd //显示16进制
0000000: 0300 0800 3c0d 0000 0100 1c00 8805 0000 ....<........... 0000010: 2700 0000 0000 0000 0000 0000 b800 0000 '............... 0000020: 0000 0000 0000 0000 1a00 0000 3400 0000 ............4... 0000030: 4000 0000 4e00 0000 5a00 0000 6800 0000 @...N...Z...h... 0000040: 8600 0000 9800 0000 f000 0000 f400 0000 ................ 0000050: 0601 0000 1a01 0000 2e01 0000 5601 0000 ............V... 0000060: 7001 0000 8401 0000 9a01 0000 b801 0000 p............... 0000070: c801 0000 0002 0000 1402 0000 5802 0000 ............X... 0000080: 8402 0000 b402 0000 d202 0000 f402 0000 ................ 0000090: 1603 0000 3803 0000 5a03 0000 7803 0000 ....8...Z...x... 00000a0: 8c03 0000 a203 0000 e603 0000 fe03 0000 ................ 00000b0: 1404 0000 3604 0000 7004 0000 ba04 0000 ....6...p.......
按 short 显示, 超过 7ffff的数据都会显示错误
如果需要编辑,只有十六进制部分的修改才会被采用。右边可显示文本部分的修改忽略不计。