将循环中的10到15个十六进制数转换为十进制数

时间:2019-05-29 05:43:11

标签: c loops hex decimal packet-sniffers

我有一个for循环,如数据包嗅探器所示,以查找源端口号。我得到的源端口号的十进制值很好,因为只有两个字节的十六进制数来自源端口号,但是我无法获得确认号的十进制值。和序列号因为它们从循环中输出了4个以上的十六进制数。请向我展示将其转换为十进制形式的代码,谢谢。.

当两个字节存在时,我使用了按位级联,但是在确认号中有4个字节时,我无法执行按位连接。和序列号。

printf("\nSource Port Number: ");

a = packet[34];
b = packet[35];
unsigned long num3;
num3 = (a<<8) | b;

printf("%ld", num3);

printf("\nSequence Number: ");

for(i = 38; i<=41; i++) {       
    printf("%X", packet[i]);
}

printf("\nAck Number: ");

for(i = 42; i<=45; i++) {       
    printf("%X", packet[i]);
}

获取序列号和确认号。用小数点表示,例如我要获取源端口号

0 个答案:

没有答案