教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 golang的位运算操作符的使用

golang的位运算操作符的使用

发布时间:2021-05-09   编辑:jiaochengji.com
教程集为您提供golang的位运算操作符的使用等资源,欢迎您收藏本站,我们将为您提供最新的golang的位运算操作符的使用资源

 

&      位运算 AND
|      位运算 OR
^      位运算 XOR
&^     位清空 (AND NOT)
<<     左移
>>     右移

感觉位运算操作符虽然在平时用得并不多,但是在涉及到底层性能优化或者使用某些trick的时候还是比较有意思。

&(AND) |(OR) 就不提了最常用的东西 会编程就会。

&操作的话是当 两个数需要同时为1的时候才会保留。 例如 0000 0100 & 0000 1111 => 0000 0100 => 4

| 操作的话是当 两个数同时为1或者1个为1一个不为1的时候会保留。 例如 0000 0100 | 0000 1111 => 0000 1111 => 15

 

^(XOR) 在go语言中XOR是作为二元运算符存在的:

但是如果是作为一元运算符出现,他的意思是按位取反,例如

package main

import "fmt"

func main() {
    x := 4
    fmt.Println(^x)
}
output: -5

如果作为二元运算符则是

package main

import "fmt"

func main() {
    x := 4
    y := 2
    fmt.Println(x^y)
}
output: 6

XOR是不进位加法计算,也就是异或计算。0000 0100 0000 0010 = 0000 0110 = 6

 

 &^ (AND NOT)位清空运算和被运算变量位置有关系,先看一个例子:

package main

import "fmt"

func main() {

    x := 2
    y := 4
    fmt.Println(x&^y)
}
output: 2

x&^y==x&(^y) 首先我们先换算成2进制  0000 0010 &^ 0000 0100 = 0000 0010 如果ybit位上的数是0则取x上对应位置的值, 如果ybit位上为1则结果位上取0

 

>>右移 <<左移 感觉右移左移应该也是非常常见的使用了 继续看例子:

package main

import "fmt"

func main() {
    x := 2
    y := 4
    fmt.Println(x<<1)
    fmt.Println(y>>1)
}
output:4 2

进行转化为二进制 然后向左或者向右移动。


到此这篇关于“golang的位运算操作符的使用”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
《Go语言四十二章经》第九章 运算符
Go 中的位运算
golang的位运算操作符的使用
go语言20小时从入门到精通(三、运算符)
golang 位运算
Golang——运算符和格式化输出
Go语言学习 第五章 运算符和表达式 ①
PHP的位运算符不包括那个符号
Go语言基础之运算符
Go 语言学习之运算符

[关闭]
~ ~