Golang位只使用无符号?

时间:2017-11-30 07:35:58

标签: go

这是一个java函数,我转换为golang代码,但出现错误 我怎么解决这个问题?请教。

java代码:

int p = -1;
int x = 0;
x |= 0x1 << p;
p++;

golang代码:

var p int = -1
var x int = 0
x |= 0x1 << p
p++
  

shift代码类型int,必须是无符号整数

1 个答案:

答案 0 :(得分:1)

这是一个错误,因为根据Go specifications,位移仅适用于无符号整数:

left shift             integer << unsigned integer
right shift            integer >> unsigned integer