转换二进制数数据为可输出结果(类似抓包显示)

const std::string printbinary(const std::string &binary)
{
 std::string out = "";
 for(int m = 0;m <binary.size();m++)
 {
  //printf("%02X ",(unsigned int)(unsigned char)binary[m]);
  char buff[4] = {0};
  sprintf(buff,"%02X ",(unsigned int)(unsigned char)binary[m]);
  out += buff;
  if((m % 16) == 15){
   //printf("    ");
   out += "    ";
   for(int n=0;n<16;n++)
   {
    unsigned char uc = (unsigned char)binary[m - 15 + n];
    if(uc <= ' ' || uc >= 128)
    {
     uc = '.';
     //out += ".";
    }
    //printf("%c",(char)uc);
    out += uc;
   }
   //printf("/n");
   out += "/n";
  }
 }
 //printf("/n");
 return out;
}

 

int main(int argc,char *argv[])
{

 char binary[100] = {0};
 std::string bs = "aaaaa发达的方式啊啊啊d/":k";
 memcpy(binary,bs.c_str(),bs.size());
 bs = "bbbdsajdadsas我们/":kfasfdsfdsafsdfdsad";
 memcpy(binary + 50,bs.c_str(),bs.size());
 std::cout<<printbinary(std::string(binary,sizeof(binary)))<<endl;

}

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值