为什么在Swift和Java中右移运算符会得到不同的结果

3
我正在尝试将我的Java代码转换为Swift,但是当对Int类型执行右移运算符时,得到了两个不同的结果。
//java
int d = 25;
int x = d >> 1 + 1;
System.out.println(x); //output: 6

//Swift(4)

 let d = 25
 let x = d >> 1 + 1
 print(x)  //output: 13

这是什么意思?请提供更多上下文。

3
运算符优先级? - Salem
3个回答

7

4

2

运算符优先级。

在第一个示例中,结果是针对

int x = d >> (1 + 1);

在第一个场景中,它是用于...而在第二个场景中,它是用于...
int x = (d >> 1) + 1;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接