我可以帮你翻译。你想将 “0x000000800” 转换成什么格式?

huangapple go评论101阅读模式
英文:

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://gchq.github.io/CyberChef/#recipe=Convert_data_units('Bits%20(b)','Bits%20(b)')&input=MHgwMDAwMDgwMA

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

https://gchq.github.io/CyberChef/#recipe=Convert_data_units('Bits%20(b)','Bits%20(b)')&input=MHgwMDAwMDgwMA

https://play.golang.org/p/Sb39Ihxi3Kx

答案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))
}

huangapple
  • 本文由 发表于 2021年6月1日 01:09:37
  • 转载请务必保留本文链接:https://go.coder-hub.com/67777877.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定