什么值为1 <&lt; 1?怎么计算呢?

时间:2013-03-07 17:58:09

标签: iphone ios objective-c ios4

任何人都可以告诉我如何计算1<<0和其他人的价值吗? 我是iOS的新手,我很难理解它。

 kSCNetworkReachabilityFlagsTransientConnection = 1<<0,
  kSCNetworkReachabilityFlagsReachable      = 1<<1,
  kSCNetworkReachabilityFlagsConnectionRequired = 1<<2,
  kSCNetworkReachabilityFlagsConnectionOnTraffic    = 1<<3,
  kSCNetworkReachabilityFlagsInterventionRequired   = 1<<4,
  kSCNetworkReachabilityFlagsConnectionOnDemand = 1<<5, // 

3 个答案:

答案 0 :(得分:7)

这只是一个移位操作。

1 << 0 = 1
1 << 1 = 2
1 << 2 = 4
1 << 3 = 8
etc...

或二进制视图

00000001 << 1 = 00000010
00000001 << 2 = 00000100
00000001 << 3 = 00001000

答案 1 :(得分:1)

这是左移操作员。

所有位都向左移动一位。通过改变值得到的值为* 2。

喜欢

1&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; 3&gt;

答案 2 :(得分:1)

“&LT;&LT;”表示左移(二进制数)。所以1&lt;&lt; n与n的幂相同。然而,最合适的是以二进制方式查看它,

1<<0 = 1b
1<<1 = 10
1<<2 = 100