我创建了一个这样的变量:
let value:Int8 = 55
我发现我可以做类似
的事情value >> 3 // and the result is 6
value << 3 // and the result is 72-
我想问你:
答案 0 :(得分:10)
<<
逻辑左移
>>
逻辑右移
您的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来存储负数。