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