【发布时间】:2015-11-10 08:29:54
【问题描述】:
我正在从 Wireshark 读取 pcap 文件,并使用 u_char 以 8 位存储数据。一部分数据是 64 位的,所以我需要将八个 8 位数字组合成/读取为一个 64 位数字,然后将其转换为十进制。 例如,这是我目前拥有的
Hex: 3f e2 da 2f 8b de c5 f4
Dec: 63 226 218 47 139 222 197 244
这就是我目前想要的,
Hex: 3fe2da2f8bdec5f4
Dec: .589134
要结合 8 个 1bytes,我试过了:
long long int a;
a = (data[j] << 56) | (data[j+1] << 48) | (data[j+2] << 40) | (data[j+3] << 32) | (data[j+4] << 24) | (data[j+5] << 16) | (data[j+6] << 8) | data[j+7];
printf("%lld", a);
output: -1073815553
非常感谢您的帮助。谢谢。
【问题讨论】:
-
句号部分暗示它根本不是整数...
标签: c hex decimal converter wireshark