按格式打印二进制


string PrintBin(const char* content,int length)
{
    int i = 0,j,k,byte = 0;
    const int iLineCharNum = 16;
    const int iLineByte = 68;
    char str[iLineByte + 1];
    string message;
    while(i < length)
    {
        memset(str,0,sizeof(str));
        if (0 == i % iLineCharNum)
        {
            sprintf(str,"/n%d/t",i);
            message = str;
        }
        for (j = 0,k = i + j;j < iLineCharNum && k < length; j++,k++)
        {
            byte = content[k] & 0xFF;
            sprintf(str,"%02X",byte);
            message += str;
        }
        for(;j < iLineCharNum;j++)(
        {
            sprintf(str,"   ");
            message += str;
        }
        sprintf(str,"    ");
        message = message + str;
        for(j = 0,k = i + j;j < iLineCharNum && k < length;j++,k++)
        {
            unsigned char ch = (unsigned char )content[k] & (unsigned char )0xFF;
            char ch2 = isprint(ch) ? ch :'.';
            sprintf(str,"%c",(isprintf(ch) ? ch :'.');
            message = message + str;
        }
        i += j;
    }
    message += "/n";
    return message;
}

效果
0         
16
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值