我想获取大尾数的99997值是(2642804992),然后将答案作为长值返回
这是我在python中的代码:
v = 99997
ttm = pack('>i', v) # change the integer to big endian form
print ("%x"), {ttm}
r = long(ttm, 16) # convert to long (ERROR)
return r
输出:%x set(['\ x00 \ x01 \ x86 \ x9d'])
错误:基数为16的long()无效文字:'\ x00 \ x01 \ x86 \ x9d'
由于字符串已经是十六进制形式,为什么不转换为长字符串呢?我将如何消除此错误,以及解决该问题的方法是什么。
最佳答案
pack将返回您提供的数据的字符串表示形式。
字符串表示形式不同于长数字的以16为底的形式。注意每个数字前的\ x。
编辑:
尝试这个
ttm = pack('>I',v)
final, = unpack('<I',ttm)
print ttm
注意使用I,因此将数字视为无符号值