利用二进制位运算储存游戏中的buff
在某些游戏中尤其MMORPG中buff是必不可少的,某些游戏甚至会达到二十甚至三十多个buff,我们每一个buff都开辟一块空间储存,会造成网络传输缓慢。所以我们可以选择在位上存,例如一个int类型变量拥有32位,这里最我们可以储存32个buff状态。接下来我们先来了解一下位运算。
二进制计算
位运算符
&按位与 A&B:如果该位都为1,结果为1,有一位为0,该位就是0
|按位或 A|B:只要有一位是1,结果就是1
按位取反 对每一位进行取反0->1 1->0
按位异或 当两位结果不同,为1 当结果相同,为0
<< 按位左移运算符 A = 0011 1100 A<< 2 将得到 240,即为 1111 0000
>> 按位右移运算符 B = 0000 1101 B>> 2 将得到 3,即为 0000 0011
假设如果 A = 60,且 B= 13,现在以二进制格式表示,它们如下所示:
A = 0011 1100
B = 0000 1101
--------------