【问题标题】:what does << and >> mean in swift [duplicate]<<和>>在swift中是什么意思[重复]
【发布时间】:2015-10-05 09:53:01
【问题描述】:

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

let value:Int8 = 55

我发现我可以做类似的事情

value >> 3 // and the result is 6


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

我想问你:

  1. 这些>>和
  2. 我的代码中的这些数字是如何计算的?

【问题讨论】:

    标签: ios macos swift swift2


    【解决方案1】:

    &lt;&lt;逻辑左移

    &gt;&gt;逻辑右移

    For more information

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

    0 0 1 1 0 1 1 1

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

    0 0 0 0 0 1 1 0

    十进制是6

    value &lt;&lt; 3 表示将位向左移动并在空位中添加零,因此您最终得到:

    1 0 1 1 1 0 0 0

    十进制为-72

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-10
      • 2020-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多