我想在Python中对C语言计算进行一些模拟。 例如,无符号短,单精度浮点数...如何在Python中进行C语言计算
ushort(0xffff) + 1 -> 0
0.1f * 0.1f -> ...
是否有一些图书馆在Python做到这一点?
我可以使用ctypes的创建无符号短,单精度浮点数,但他们 水湿做数学运算:
a = c_uint16(0xffff)
b = c_uint16(0x01)
a+b -> TypeError
或者,我可以用numpy的:
>>> np.uint16(0xffff) + np.uint16(0x01)
Warning: overflow encountered in ushort_scalars
0
但很与Python的正常计算相比较慢:
>>> timeit.timeit("a+b", "import numpy as np;a=np.uint16(0xfffe);b=np.uint16(0x01)")
0.35577465681618037
>>> timeit.timeit("0xfffe+0x01")
0.022638104432360251
>>> timeit.timeit("np.uint16(0xfffe) + np.uint16(0x01)", "import numpy as np")
5.904765399236851
编辑:
>>> timeit.timeit("a+b", "a=0xfffe;b=0x01")
0.040062221014295574
怎么样:'def add(a,b):return(a + b )%65536'? – JBernardo 2011-06-16 02:21:43