在Morderngpu中,看到这行代码~(coop - 1) & tid,前提条件为coop为2 4 8 ...即2的倍数
即刚好对应二进制的
128 64 32 16 8 4 2 1
0 0 0 0 0 0 0 0
当coop为2时:
二进制为
0 0 0 0 0 0 1 0
coop - 1二进制为
0 0 0 0 0 0 0 1
~(coop - 1)二进制为
1 1 1 1 1 1 1 0
因此tid凡尾部为 0 或 1的,得到的都是0,即从0开始,相邻的2(coop)位得到的结果是相同的
0 0
1 0
2 2
3 2
同理 coop时:
0 0
1 0
2 0
3 0
4 4
5 4
6 4
7 4
所以可以推测~(coop - 1) & tid,为0起始,相邻coop个tid得到的结果相同,且不同的结果间隔coop