Go当然可以对
byte类型进行按位运算,这只是的别名
uint8。我必须对您的代码进行的唯一更改是:
- 变量声明的语法
- 在将其添加
j
到byte
之前先转换为c
,因为Go在进行算术时缺少(按设计)整数提升转换。 - 删除分号。
干得好
var a, c bytevar data []bytevar j intc = data[j]c = c + byte(j)c ^= ac ^= 0xFFc += 0x48
如果您打算在Go中按位执行 *** 作,请注意,该 *** 作符为,而
^不是
~大多数其他当代编程语言中使用的。这与用于xor的运算符相同,但两者并不矛盾,因为编译器可以通过确定将
^用作一元运算符还是二进制运算符来分辨出哪一个。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)