什么做的和<<意思?

时间:2011-02-03 11:01:56

标签: objective-c

很抱歉,如果这是一个常见的问题,但我不知道它叫什么,所以我在搜索时遇到了麻烦。

这是如何运作的:

view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

据我所知,这意味着视图同时具有灵活的宽度和高度,但它如何存储两个这样的变量?

如果我查看UIViewAutoresizing的typedef,它看起来像:

enum {
    UIViewAutoresizingNone                 = 0,
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
    UIViewAutoresizingFlexibleWidth        = 1 << 1,
...

那么,一个变量如何存储多个像这样的值?

2 个答案:

答案 0 :(得分:6)

“|”是一个按位'或'。

“&LT;&LT;”也是一种按位操作转换。它将所有位移到左边:

00100 << 1 = 01000

阅读wiki,您对“或”和转移操作感兴趣。

答案 1 :(得分:3)

这些是C位级别的运算符。

|是二进制或:0001 | 0010 = 0011。

<<有点移位:0001&lt;&lt; 1 = 0010。

它们用于bitmasks