有人可以告诉我这里正在做什么吗:
const uint32_t goodguys = 0x1 << 0
我假设它是 c++ 并且它正在为一个组分配一个标签,但我从未见过这样做。我是一个自学的 Objective C 人,这对我来说看起来很陌生。
好吧,如果在您发布的那一行之后还有更多类似这样的行,那么它们可能是bitmasks
.
例如,如果您有以下情况:
const uint32_t bit_0 = 0x1 << 0;
const uint32_t bit_1 = 0x1 << 1;
const uint32_t bit_2 = 0x1 << 2;
...
那么你可以使用按位&
运算符与bit_0
, bit_1
, bit_2
,...和另一个数字,以便查看该其他数字中的哪些位已打开。
const uint32_t num = 5;
...
bool bit_0_on = (num & bit_0) != 0;
bool bit_1_on = (num & bit_1) != 0;
bool bit_2_on = (num & bit_2) != 0;
...
So your 0x1
只是指定的一种方式goodguys
是一个位掩码,因为十六进制0x
指示符表明代码的作者正在专门考虑位,而不是十进制数字。然后是<< 0
用于准确更改位掩码所屏蔽的内容(您只需更改0
to a 1
, 2
, etc.).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)