Golang按位运算以及一般字节操作
发布时间:2020-12-16 19:03:42 所属栏目:大数据 来源:网络整理
导读:我有一些c#代码对一个字节执行一些按位操作.我试图在golang做同样的事情,但我遇到了困难. c#中的示例 byte a,c;byte[] data; int j;c = data[j];c = (byte)(c + j);c ^= a;c ^= 0xFF;c += 0x48; 我已经读过golang不能对字节类型执行按位操作.因此,我是否必须
我有一些c#代码对一个字节执行一些按位操作.我试图在golang做同样的事情,但我遇到了困难.
c#中的示例 byte a,c; byte[] data; int j; c = data[j]; c = (byte)(c + j); c ^= a; c ^= 0xFF; c += 0x48; 我已经读过golang不能对字节类型执行按位操作.因此,我是否必须将我的代码修改为类型uint8才能执行这些操作?如果是这样,有一个干净,正确/标准的方式来实现这一点?
Go当然可以对字节类型执行按位操作,这只是uint8的别名.我必须对您的代码进行的唯一更改是:
>变量声明的语法 干得好 var a,c byte var data []byte var j int c = data[j] c = c + byte(j) c ^= a c ^= 0xFF c += 0x48 如果你打算按位而不是在Go中,请注意那个操作符是^,而不是大多数其他当代编程语言中使用的?.这与用于xor的运算符相同,但两者不是模糊的,因为编译器可以通过确定^是用作一元运算符还是二元运算符来判断哪个是哪个. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |