我想在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