英文:
What does a caret before an int mean?
问题
我知道插入符号 ^
表示按位异或,但是我看到一段 Go 代码,其中出现了以下内容:
input[0] = ^output[3]
当我尝试以下操作时:
^1 得到 -2
^2 得到 -3
等等...
请注意,这里的 ^
并不是按位异或运算符,而是按位取反运算符。按位取反运算符会将操作数的每个位取反,即将 0 变为 1,将 1 变为 0。因此,^1
的结果是 -2,^2
的结果是 -3,以此类推。
英文:
I'm aware the caret symbol ^
means bitwise XOR
but I'm looking at a pice of Go code and I see things like
input[0] = ^output[3]
when I try for example:
^1 gives -2
^2 gives -3
etc..
答案1
得分: 3
从语言规范的"算术运算符"部分可以得知:
对于整数操作数,一元运算符+、-和^的定义如下:
+x 等于 0 + x
-x 取反 等于 0 - x
^x 按位取反 等于 m ^ x,其中对于无符号的x,m = "所有位都设置为1",对于有符号的x,m = -1
英文:
From the "Arithmetic Operators" section of the language specification:
> For integer operands, the unary operators +, -, and ^ are defined as
> follows:
>
> +x is 0 + x
> -x negation is 0 - x
> ^x bitwise complement is m ^ x with m = "all bits set to 1" for unsigned x
> and m = -1 for signed x
答案2
得分: 1
作为一元运算符,它表示"按位取反"。
英文:
As a unary operator it means 'bitwise not'
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论