24,854
社区成员
发帖
与我相关
我的任务
分享
void HexDump(char *buf,int len,int addr) {
int i,j,k;
char binstr[80];
for (i=0;i<len;i++) {
if (0==(i%16)) {
sprintf(binstr,"%08x -",i+addr);
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
} else if (15==(i%16)) {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
sprintf(binstr,"%s ",binstr);
for (j=i-15;j<=i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
} else {
sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);
}
}
if (0!=(i%16)) {
k=16-(i%16);
for (j=0;j<k;j++) {
sprintf(binstr,"%s ",binstr);
}
sprintf(binstr,"%s ",binstr);
k=16-k;
for (j=i-k;j<i;j++) {
sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');
}
printf("%s\n",binstr);
}
}
#include <stdio.h>
typedef unsigned char BYTE;
BYTE c[3]={0x04,0xc2,0xda};
int d;
char b[3][3]={"04","c2","da"};
char s[7];
int main() {
d=(
(
(unsigned int)c[0]
)<<16
)
+(
(
(unsigned int)c[1]
)<<8
)
+ (unsigned int)c[2];
printf("%06x\n%d\n",d,d);
printf("%s %s %s\n",b[0],b[1],b[2]);
sprintf(s,"%s%s%s",b[0],b[1],b[2]);
sscanf(s,"%6x",&d);
printf("s:%s\n%d",s,d);
return 0;
}
//04c2da
//312026
//04 c2 da
//s:04c2da
//312026
//
d=(
(
(unsigned int)c[0]
)<<16
)
+(
(
(unsigned int)c[1]
)<<8
)
+ (unsigned int)c[2];
C语言排版就是能如此自由!printf("%d\n",d);
BYTE b[3];
int d;
b[0]=0x04;
b[1]=0xc2;
b[2]=0xda;
d=((unsigned int)b[0])<<16)+((unsigned int)b[1])<<8)+(unsigned int)b[2];