Golang 结构体转字节数组(struct to []byte)
Golang 结构体转字节数组(struct to []byte)
代码:
package main
import (
"bytes"
"encoding/binary"
"fmt"
log "fmt"
)
type NCPTargetVersion struct {
NCPVersion uint16
SoftwareVersion uint16
HardwareVersion uint16
}
func main() {
log.Println("create dfu file")
// context, err := ioutil.ReadAll("./full_111.gbl")
// if err != nil {
// log.Println(err)
// }
var ver = &NCPTargetVersion{0x01, 0x01, 0x01}
data, err := ver.Encode()
if err != nil {
log.Println(err)
return
}
data = bytes_extend(data, 16)
fmt.Println("[]byte is: ", data)
}
func (obj *NCPTargetVersion) Encode() ([]byte, error) {
buf := new(bytes.Buffer)
if err := binary.Write(buf, binary.BigEndian, obj); err != nil {
return nil, err
}
return buf.Bytes(), nil
}
func bytes_extend(data []byte, size int) []byte {
if size > len(data) {
var ext []byte = make([]byte, size-len(data))
var buffer bytes.Buffer
buffer.Write(data)
buffer.Write(ext)
return buffer.Bytes()
}
return data
}
输出:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现