golang []byte 转int16
时间: 2023-12-24 11:03:50 浏览: 159
可以使用binary包中的方法来将[]byte转换为int16。
示例代码:
```go
package main
import (
"bytes"
"encoding/binary"
"fmt"
)
func main() {
b := []byte{0x12, 0x34}
var i int16
buf := bytes.NewBuffer(b)
err := binary.Read(buf, binary.BigEndian, &i)
if err != nil {
fmt.Println("binary.Read failed:", err)
}
fmt.Println(i)
}
```
输出结果为:4660
解释:将16进制的0x1234转换为10进制的4660。
相关问题
golang []byte 转int32
可以使用以下方法将[]byte转换为int32:
```go
b := []byte{0x12, 0x34, 0x56, 0x78} // 4个字节的byte数组
i := int32(binary.BigEndian.Uint32(b)) // 将byte数组转换为int32,使用BigEndian字节序
fmt.Println(i) // 输出:305419896
```
这里使用了`binary.BigEndian.Uint32`将byte数组转换为int32,使用了大端字节序(即高位字节排在前面)。如果需要使用小端字节序,可以使用`binary.LittleEndian.Uint32`。
注意:要确保byte数组的长度为4,否则会发生运行时错误。如果byte数组的长度不确定,可以使用`len`函数进行检查。
golang json转byte
可以使用`json.Marshal`函数将一个结构体转换为JSON格式的byte数组,示例代码如下:
```go
import "encoding/json"
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
p := Person{Name: "Alice", Age: 20}
jsonBytes, err := json.Marshal(p)
if err != nil {
// 处理错误
}
// 此时jsonBytes就是转换后的JSON格式的byte数组
```
如果要将一个JSON格式的字符串转换为byte数组,可以使用`[]byte()`强制类型转换,示例代码如下:
```go
jsonStr := `{"name":"Bob","age":30}`
jsonBytes := []byte(jsonStr)
```