最近要做一个小工具,对uint32的整数进行逻辑位操作,想请教大家一下,想实现下面的功能,有没有标准库的支持,省得自己再开发了。 (1)对某连续的几个bit进行赋值; (2)循环左移或者右移; (3)左移低位补零,或者右移高位补零。
麻烦各位专家指点一下! 谢谢!
有疑问加站长微信联系(非本文作者)

最近要做一个小工具,对uint32的整数进行逻辑位操作,想请教大家一下,想实现下面的功能,有没有标准库的支持,省得自己再开发了。 (1)对某连续的几个bit进行赋值; (2)循环左移或者右移; (3)左移低位补零,或者右移高位补零。
麻烦各位专家指点一下! 谢谢!
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
`单行代码`
试一试math/bits
我直接混进去汇编的代码
https://www.baidu.com/s?ie=UTF-8&wd=golang%20%E7%A7%BB%E4%BD%8D%E6%93%8D%E4%BD%9C
import ( "log" "unsafe" ) func main() { var src uint32 = 20 var val byte = 0 for i := uintptr(0); i < unsafe.Sizeof(src); i++ { (byte)(unsafe.Pointer(i + uintptr(unsafe.Pointer(&src)))) = val log.Printf("Set %v at %v", val, i+uintptr(unsafe.Pointer(&src))) } log.Println(uintptr(unsafe.Pointer(&src)), src) }
for里面你可以自由发挥,想赋值给哪位就哪位,玩完了重新按uint32读取就是了。