go语言位操作
基本操作
取反^ 单目运算符异或^ 双目运算符左移<<右移>>
示例代码
package main
import (
"fmt"
)
func even(
a int) (array []int) {
for i :=
0; i <
a; i++ {
if i&
1 ==
0 {
array = append(array, i)
}
}
return array
}
func swap(
a, b int) (int, int) {
a ^= b
b ^=
a
a ^= b
return a, b
}
func shifting(
a int) int {
a =
a <<
1
a =
a >>
1
return a
}
func nagation(
a int) int {
return ^
a +
1
}
func main() {
fmt.Printf(
"even: %v\n", even(
100))
a, b := swap(
100,
200)
fmt.Printf(
"swap: %d\t%d\n",
a, b)
fmt.Printf(
"shifting: %d\n", shifting(
100))
fmt.Printf(
"nagation: %d\n", nagation(
100))
}
补充说明
^这个符号作单目运算符的时候是取反,作双目运算符时是异或;跟C/C++语言的位操作(比如取反是~)并不一样
转载请注明原文地址: https://ju.6miu.com/read-677006.html