什么<<和>>快速意味着

时间:2015-10-05 09:53:02

标签: ios macos swift swift2

我创建了一个这样的变量:

let value:Int8 = 55

我发现我可以做类似

的事情
value >> 3 // and the result is 6


value << 3 // and the result is 72-

我想问你:

  1. 这些&gt;&gt;是什么和&lt;&lt;在swift中意味着什么?
  2. 我的代码中的这些数字是如何计算的?

1 个答案:

答案 0 :(得分:10)

<<逻辑左移

>>逻辑右移

For more information

您的Int8 55以二进制形式表示为:

  

0 0 1 1 0 1 1 1

value >> 3表示将位向右移位并在空位中添加零,因此您最终得到

  

0 0 0 0 0 1 1 0

是十进制的6

value << 3表示将位移到左侧并为空位添加零,因此最终得到:

  

1 0 1 1 1 0 0 0

,小数为-72

请注意,这是一个负数,因为最重要的位(左边的最多位)是1。 iOS和OSX使用2’s complement来存储负数。