二进制的比特位如何在golang中使用

  介绍

二进制的比特位如何在golang中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

golang作为一热门的兼顾性能效率的热门语言,相信很多人都知道,在编程语言排行榜上一直都是很亮眼,作为一门强类型语言,二进制位的操作肯定是避免不了的,数据的最小的单位也就是位,尤其是网络中封包,拆包,读取二进制文件等用的特别广泛,

所以学好golang二进制位位的常用操作还是很必要的,而且很多运算尤其是乘法除法运算,CPU效率是很低的,这时候可以二进制操作代替,不多说了,上干货!

package  main    import  (   “才能fmt"   “;github.com/imroc/biu"才能;   )   ,/* *   golang才能二进制位位的常用操作,国际是一个转换二进制显示的库   ,mengdj@outlook.com   ,*/func  main (), {   var(才能   ,,,/* *   ,,,1个字节=8个二进制位,每种数据类型占用的字节数都不一样   ,,,注意位操作千万不要越界了,如某个类型占8个比特位,偏移时候不要超过这个范围   ,,,*/,,,a  uint8=30   ,,)//输才能出结果:00011110   fmt.Println才能(biu.ToBinaryString (a))   ,/* *   ,,将某一位设置为1,例如设置第8位,从右向左数需要偏移7位,注意不要越界   1 & lt;才能& lt; 7=1000, 0000,然后与一个逻辑或|,偏移后的第8位为1,逻辑|运算时候只要1个为真就为真达到置1目的   ,,*/,,b:=| (1 & lt; & lt; 7)   ,,//b输出结果:10011110   ,,fmt.Println (biu.ToBinaryString (b))   ,,/* *   ,,将某一位设置为0,例如设置第4位,从右向左数需要偏移3位,注意不要越界   ,,1 & lt; & lt; 3=0000, 1000,然后取反得到,1111年,0111年,然后逻辑,a   ,,*/,,c:=第一部;^ (1 & lt; & lt; 3)   ,,//c输出结果:00010110   ,,fmt.Println (biu.ToBinaryString (c))   ,,/* *   ,才能获取某一位的值,即通过左右偏移来将将某位的值移动到第一位即可,当然也可以通过计算获得   ,,如获取一的第4位   ,,先拿掉4位以上的值,a<& lt; 4=1110, 0000年,然后拿掉右边的3位即可,a>在7=0000,0001   ,,*/,,,d:=(a<& lt; 4)在祝辞7   ,,,//d输出结果:00000001,即1   ,,,fmt.Println (biu.ToBinaryString (d))   ,,,/* *   ,,,取反某一位,即将某一位的1变0,0变1   ,,,这里使用到了亦或操作符,^,即,位值相同位0,不同为1   ,,,如获取一的第4位,1 & lt; & lt; 3=0000, 1000   ,,,0000,1000,^,0001年,1110年,=,0001,0110   ,,*/,,,e:=^ (1 & lt; & lt; 3)   ,,,//d输出结果:00010110,即1   ,,,fmt.Println (biu.ToBinaryString (e))   ,   ,,,/* *   ,,,最后1个是综合用法,若tcp协议需要客户端先发送握手包,该包占用1个字节,其中前2位保留字段必须要为0,中间3位客户端对服务器版本要求,最后位客户端端版本   ,,,假设我们对服务器的版本要求和自己的版本都是3,那么我们该怎样构建这个包呢?,目标0001,1011   ,,,很多语言类型都没有直接,bit 单位,只要字节因此需要通过其他方法来得到,其实简单|或运算加上偏移即可,值得注意的网络使用的都是大端字节,传输前需要转换   ,,,射频=0,0000,0000   ,,,svf=3, 0000, 0011,偏移3位得到,0001,1000   ,,,cvf=3, 0000, 0011   ,,,计算   ,,,0000,0000   ,,|   ,,,0001,1000   ,,|   ,,,0000,0011   ,,=,,,0001,1011   ,,*/,,,var 射频,svf, cvf  uint8=0、3、3   ,,,的头:射频|=(svf<& lt; 3) | cvf   ,,,//头输出结果:00011011   ,,,fmt.Println (biu.ToBinaryString(头)   }

<>强补充:去语言二进制安装

去语言二进制安装方式非常简单,

1,到这里下载https://golang.org/dl/二进制安装包

2,解压安装包到/usr/地方/去目录下

3,编辑/etc/profile,加入出口路径=$路径:/usr/地方/去/bin

4,源/etc/profile,不退出登录让概要生效

5,建立你好。去文件测试下生成是否安装成功

package 主要   import “fmt"   func  main (), {   fmt.Printf才能(“你好,世界\ n")   }

6,运行你好。去

[root@ffe406bc816b我]#运行hello。

你好,世界

二进制的比特位如何在golang中使用