请在Apple SpriteKit示例代码中解释uint32_t和0x1 << 0

Arb*_*tur 5 operators ios sprite-kit

我在SpriteKit的苹果示例代码中找到了几行

static const uint32_t missileCategory  =  0x1 << 0;
Run Code Online (Sandbox Code Playgroud)

我知道什么static const是什么但是什么是uint32_t什么0x1 << 0意思?是某种十六进制?

Rok*_*arc 7

<<按位左移(乘以2)运算符.

<< 0 是相同的 *1

所以等效的陈述是:

static const uint32_t missileCategory  =  0x1;
Run Code Online (Sandbox Code Playgroud)

我在这里写了更多.

例如:

0x1 << 4会回来的0x10.

看着它二进制:

00000001 << 4 = 00010000
Run Code Online (Sandbox Code Playgroud)

从气味上说这意味着1 * 2 * 2 * 2 * 21 * 2^4

因为这是实际的uint32_t价值

0x00000010
Run Code Online (Sandbox Code Playgroud)