This question already has answers here:
What does shift left (<<) actually do in Swift?

(2个答案)


4年前关闭。




我创建了一个这样的变量:
let value:Int8 = 55

我发现我可以做类似的事情
value >> 3 // and the result is 6


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

我想问你:
  • 这些>>和<
  • 如何计算我代码中的这些数字?
  • 最佳答案

    <<逻辑左移
    >>逻辑右移

    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存储负数。

    关于ios - <<和>> swift 意味着什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32945680/

    10-11 07:53