go语言bit处理 golang bitmap

go语言适合做什么go语言适用的领域有:
Go语言主要用作服务器端开发 , 其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长 , 支持云计算的网络服务 。
Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发 。
Go语言能够让程序员快速开发 , 并且在软件不断的增长过程中 , 它能让程序员更容易地进行维护和修改 。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性 。
Go语言作为一门大型项目开发语言,在很多大公司相继使用,甚至完全转向Go开发 , 其中代表有Google、Facebook、腾讯、百度、阿里巴巴、京东、小米以及360、美团、滴滴以及新浪等,因此,Go语言的开发前景还是很不错的!
go语言操作符 ^ 和 &^很多语言都是采用 ~ 作为按位取反运算符,Go 里面采用的是 ^。
如果作为二元运算符,^ 表示按位异或,即:对应位相同为 0,相异为 1 。
操作符 ^,按位置零,例如:z = x ^ y , 表示如果 y 中的 bit 位为 1,则 z 对应 bit 位为 0,否则 z 对应 bit 位等于 x 中相应的 bit 位的值 。
对于有符号的整数来说 , 是按照补码进行取反操作的(快速计算方法:对数 a 取反 , 结果为 -(a+1) ),对于无符号整数来说就是按位取反
计算过程
以3为例3在内存中补码为 0*** 0011
取反1*** 1100
-1操作1*** 1011
除符号位取反1*** 0100 结果为-4
-------------------------------------------
以9为例 9在内存中补码为 0*** 1001
取反1*** 0110
-1操作1*** 0101
除符号位取反1*** 1010 结果为-10
-------------------------------------------
以-5为例 -5在内存中为的补码为 1*** 1011
为什么呢
-5源码1*** 0101
【go语言bit处理 golang bitmap】除符号取反1*** 1010
+1操作1*** 1011
-------------------------------------------
那么-5取反怎么算
补码 1***1011取反为 0***0100
因为符号位为0 , 所以是正数了,正数的补码反码源码都是一个,所以是4
===================================
再看-1
-1源码1*** 0001
除符号取反1*** 1110
+1操作1*** 1111
补码 1*** 1111 取反为 0*** 0000
因为符号位为0 , 所以是正数了,正数的补码反码源码都是一个,所以是0
go语言取反输出的例子看这里
go是什么编程语言?主要应用于哪些方面?Go语言由Google公司开发 , 并于2009年开源,相比Java/Python/C等语言,Go尤其擅长并发编程,性能堪比C语言,开发效率肩比Python,被誉为“21世纪的C语言” 。
Go语言在云计算、大数据、微服务、高并发领域应用应用非常广泛 。BAT大厂正在把Go作为新项目开发的首选语言 。
Go语言能干什么?
1、服务端开发:以前你使用C或者C++做的那些事情 , 用Go来做很合适 , 例如日志处理、文件系统、监控系统等;
2、DevOps:运维生态中的Docker、K8s、prometheus、grafana、open-falcon等都是使用Go语言开发;
3、网络编程:大量优秀的Web框架如Echo、Gin、Iris、beego等,而且Go内置的 net/http包十分的优秀;
4、Paas云平台领域:Kubernetes和Docker Swarm等;
5、分布式存储领域:etcd、Groupcache、TiDB、Cockroachdb、Influxdb等;

推荐阅读