linux中的xxd命令可以实现二进制文件到16进制字符的转换

        刚才玩代码, 遇到这样一个情况: 程序中有一段buffer(可以认为里面是一串二进制流哈), 我想看这些二进制对应的值, 当时想写个程序, 于是写了一下, 发现居然还写得不对, 我嘞个去, 能用linux命令就搞定的东西, 还是省省吧。 可以把这段二进制保存在文件中, 然后用xxd来玩, 如下:

[taoge@localhost test]$ vim test.c^C
[taoge@localhost test]$ ^C
[taoge@localhost test]$ cat test.c 
#include <stdio.h>

int main()
{
        char buf[100] = ".s.a";
        FILE *fp = fopen("haha", "w");
        fwrite(buf, sizeof(buf), 1, fp);
        fclose(fp);

        return 0;
}
[taoge@localhost test]$ ./a.out 
[taoge@localhost test]$ xxd haha
0000000: 2e73 2e61 0000 0000 0000 0000 0000 0000  .s.a............
0000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
0000060: 0000 0000                                ....
[taoge@localhost test]$ 
       OK,  以后遇到二进制文件, 或者一段未知buffer, 就可以这么搞, 省时省力。 当然, 还有很多工具是可以读取对应的字符的, 比如Beyond Compare。 

       总之一句话, 要把工具充分用起来, 比如linux中的linux命令。





  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值