s := CB n, err := strconv.ParseUint(s, 16, 8) if err != nil { panic(Parse Error) } n2 := uint8(n) f := int(*(*int8)(unsafe.Pointer(&n2))) fmt.Println(f) 这是个16进制字符串转无符号8位整数后再转成有符号的8位整数的过程, 之所以这么转是因为直接ParseInt(s, 16, 8)会抛出异常, 因为默认的strconv的ParseInt貌似不支持负数和浮点数的解析, 所以先将其转成uint64, 然后强转成uint8, 这样