英文:
golang I can't convert "0x000000800"
问题
你好,我需要将这个值“0x00000800”转换为1并输出。
即使将这个值(“0x00000800”)转换为2048,也足够了。
fmt.Println(strconv.Itoa((0x00000800 >> 11) & 0x1F)) // 正确工作
// 但是我的值是作为字符串传入的
src := "0x00000800"
fmt.Println(strconv.Itoa((src >> 11) & 0x1F)) // 无法正常工作
https://play.golang.org/p/Sb39Ihxi3Kx
英文:
Hello I need to output 1 after converting this value "0x00000800"
Even if I convert this value("0x00000800") to 2048, it is enough.
fmt.Println(strconv.Itoa((0x00000800 >> 11) & 0x1F)) //working correctly
//but my value comes as string
src:= "0x00000800"
fmt.Println(strconv.Itoa((src >> 11) & 0x1F)) //not working properly
答案1
得分: 0
Itoa不是你要找的东西
package main
import (
"fmt"
"strconv"
)
func main() {
fmt.Println(strconv.Itoa((0x00000800 >> 11) & 0x1F)) // 正确工作
// 但我的值是作为字符串传入的
src := "0x00000800"
// src[2:] 去掉0x
// base 16 十六进制
// 要转换为的int的位数
fmt.Println(strconv.ParseInt(src[2:], 16, 64))
}
英文:
Itoa isn't what you are looking for
package main
import (
"fmt"
"strconv"
)
func main() {
fmt.Println(strconv.Itoa((0x00000800 >> 11) & 0x1F)) //working correctly
//but my value comes as string
src := "0x00000800"
// src[2:] removes 0x
// base 16 hexadecimal
// bit size of int to convert to
fmt.Println(strconv.ParseInt(src[2:], 16, 64))
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论