young_protokaa42 Asked:2022-09-05 18:40:16 +0800 CST2022-09-05 18:40:16 +0800 CST 2022-09-05 18:40:16 +0800 CST 类型转换。戈朗 772 我想将字节转换为 int,但不是以通常的方式。如果你使用 int 函数 int(0x30) 我们得到结果 48。我需要得到 30。输入 0x10 得到 10。输入 0x11 得到 11,依此类推。怎么做? golang 3 个回答 Voted gil9red 2022-09-05T19:02:25+08:002022-09-05T19:02:25+08:00 如果你在旅途中计算,你可以试试这个: 获取hex为字符串 将字符串转换hex为数字 例子: package main import ( "fmt" "strconv" ) func main() { bytes := []byte{0x10, 0x30, 0x00} fmt.Println(bytes) // [16 48 0] numbers := make([]int, len(bytes)) for i := 0; i < len(bytes); i++ { hex_str := fmt.Sprintf("%X", bytes[i]) num, _ := strconv.Atoi(hex_str) numbers[i] = num } fmt.Println(numbers) // [10 30 0] } Best Answer young_protokaa42 2022-09-05T19:29:31+08:002022-09-05T19:29:31+08:00 找到了正确的解决方案: strconv.ParseFloat(strconv.FormatInt(int64(0x30), 16), 16) Alexander Pavlov 2022-09-08T09:43:51+08:002022-09-08T09:43:51+08:00 int hex = int(0x30) int d1 = hex / 16 int d2 = hex % 16 if d1 > 9 || d2 > 9 { // panic ... } int decimal = d1*10 + d2
如果你在旅途中计算,你可以试试这个:
hex
为字符串hex
为数字例子:
找到了正确的解决方案: