2017-05-04 2 views

答えて

6

明示的なビットクリア演算子を使用すると、リテラルや型なしの定数を扱いやすくなります。

型なし整数のデフォルトの型はintであるため、a := uint32(1) & ^1のようなものは、^ 1が最初に評価され、-2と等しい^ int(1)と評価されるため不正です。 a := uint32(1) &^ 1は有効ですが、ここでは1はコンテキストに基づいてuint32として評価されます。

明示的なビットクリアでパフォーマンスが向上する可能性もありますが、それについてはあまりよく分かりません。

+2

少なくともamd64では、同じマシンコードにコンパイルされるため、そこにはパフォーマンスの違いはありません。 – JimB

+0

JimB、あなたはすべてをintに署名したらどういう意味ですか? –

関連する問題