最近要做一个小工具,对uint32的整数进行逻辑位操作,想请教大家一下,想实现下面的功能,有没有标准库的支持,省得自己再开发了。
(1)对某连续的几个bit进行赋值;
(2)循环左移或者右移;
(3)左移低位补零,或者右移高位补零。
麻烦各位专家指点一下!
谢谢!
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)
}
#4