Python 3.4、Windows 10、Cython 0.21.1
我正在使用Cython将此函数编译为C语言。
def weakchecksum(data):
"""
Generates a weak checksum from an iterable set of bytes.
"""
cdef long a, b, l
a = b = 0
l = len(data)
for i in range(l):
a += data[i]
b += (l - i)*data[i]
return (b << 16) | a, a, b
产生此错误的代码如下: "OverflowError: Python int too large to convert to C long"
我还尝试将它们声明为无符号长整型。使用哪种类型可以处理非常大的数字?如果它太大了,无法转换为C语言的长整型,是否有任何解决办法?
from libc.stdint cimport int64_t
吗? - user1415946