0

我可以在 Apple 的文档中看到枚举有时是这样定义的

enum {
UICollectionViewScrollPositionTop = 1 << 0,
UICollectionViewScrollPositionBottom = 1 << 1
}

<< 是什么意思?

4

3 回答 3

3

这是按位左移运算符。它用于创建具有单个位集的值,当打算通过按位 OR 组合时非常常见。

对于这些值,您稍后可能会说:

const int top_and_bottom = UICollectionViewScrollPositionTop | UICollectionViewScrollPositionBottom;

这将导致top_and_bottom设置为 3(二进制 11 2)。

于 2013-02-18T12:09:40.943 回答
1

<<代表左移。

它将二进制文件转移到指定的位,就像4<<1将是84<<2将是一样16。每次左移使值乘以 2。

1<<0 将是 1,而 1<<1 将是 2。

在这里检查

于 2013-02-18T12:09:39.673 回答
1

这里只是左位移位。所以这意味着1<<0=1例如。并且1<<1是两个。也许作者选择这种方式来初始化枚举是为了强调UICollectionViewScrollPositionTop只有最低有效位和UICollectionViewScrollPositionBottom只有倒数第二位的事实。我猜这个枚举的用途是以后以某种方式形成位掩码。

于 2013-02-18T12:09:53.320 回答