我有以下要计算校验和的字符串。
3556.5:200:3557.0:2:3556.4:84:3557.4:4:3555.7:6:3557.7:14:3555.1:46:3558.6:21:3552.9:14:3558.7:10:3552.8:194:3558.8:106:3552.7:10:3558.9:10:3552.6:25:3560.2:178:3552.5:4:3560.5:111:3551.7:1:3561.7:1:3551.6:65:3562.5:18:3551.0:103:3562.6:111:3550.7:3:3562.7:3:3550.6:4:3562.8:185:3550.5:1:3563.7:1:3550.3:84:3564.2:1:3550.2:156:3564.8:153:3550.0:82:3565.0:400:3549.7:1:3565.9:60:3548.4:104:3566.1:20:3547.2:177:3566.5:40:3545.9:1:3568.0:20:3545.1:11:3569.4:12:3545.0:71:3570.0:82:3544.9:1:3570.6:4
我下面要做的
string2 = string.encode('ascii')
checksum = zlib.crc32((string2))
这给我一个3467096777的整数。但是,服务器提供商说它应该是-949017128。此外,我尝试了字符串的许多变体,并始终以正数结尾,这在某种程度上导致我计算我的带符号crc32整数的方法有错误的可能性。
我通过以下方式转换了-949017128
checksum_server = -949017128 & 0xffffffff
它产生3345950168,与我的仍然不同。
有没有一种方法可以从带符号的crc32整数-949017128中计算出字符串?