golang []byte 转int16
时间: 2023-12-24 15:03:50 浏览: 247
可以使用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 byte[] copy
在 Go 语言中,可以使用 `copy()` 函数复制一个字节切片(byte slice)的元素到另一个字节切片。`copy()` 函数的定义如下:
```
func copy(dst, src []byte) int
```
其中,`dst` 是目标字节切片,`src` 是源字节切片。`copy()` 函数返回复制的字节数,也就是目标字节切片的长度。
下面是一个示例代码:
```go
package main
import "fmt"
func main() {
src := []byte("Hello, world!")
dst := make([]byte, len(src))
copy(dst, src)
fmt.Println(string(dst))
}
```
在上面的示例代码中,我们首先创建了一个源字节切片 `src`,然后创建了一个和 `src` 长度相同的目标字节切片 `dst`。接着,我们调用 `copy()` 函数将 `src` 的元素复制到 `dst` 中。最后,我们将 `dst` 转换成字符串并打印出来。
输出结果为:
```
Hello, world!
```
阅读全文