2017-11-30 9 views
-5

これはJavaの関数です。私はgolangコードに変換しましたが、エラーが表示されます。
この問題を解決するにはどうすればよいですか?教えてください。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++ 

シフトコードint型、符号なし整数でなければならない

+0

私は本当に-1ビットだけ左にシフトしているのだろうと思います。詳しく教える? – kostix

答えて

1

これは、Go specifications通りエラーでありますビットシフトは符号なし整数でのみ機能します:

left shift    integer << unsigned integer 
right shift   integer >> unsigned integer 
関連する問題