如果我有一个适合32位的int,那么在python中将它分成四个8位值的最快方法是什么?我的简单时序测试表明,位掩码和移位速度比中等速度快divmod(),但我很确定我没有考虑过所有内容.
>>> timeit.timeit("x=15774114513484005952; y1, x =divmod(x, 256);y2,x = divmod(x, 256); y3, y4 = divmod(x, 256)")
0.5113952939864248
>>> timeit.timeit("x=15774114513484005952; y1=x&255; x >>= 8;y2=x&255; x>>=8; y3=x&255; y4= x>>8")
0.41230630996869877
Run Code Online (Sandbox Code Playgroud)
在你问之前:这个操作会被大量使用.我正在使用python 3.4.