You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言如何处理hex字符串与位运算,实现类似JS的Buffer操作

解决方案

Go标准库encoding/hex包可以实现和JS Buffer完全等效的能力:先将十六进制字符串解码为字节切片([]byte),之后就可以直接通过位运算提取指定位置的数据,逻辑和JS版本完全对齐。

实现代码如下:

package main

import (
	"encoding/hex"
	"fmt"
)

func main() {
	hexStr := "5FEE012503591FC70CC8"
	// 等效于JS的Buffer.from(hex, "hex"),将hex字符串解码为字节数组
	bytes, err := hex.DecodeString(hexStr)
	if err != nil {
		panic(err)
	}
	// 和JS写法逻辑一致,显式转uint16避免uint8移位溢出
	battery := (uint16(bytes[8]) << 8) | uint16(bytes[9])
	fmt.Println("Battery: ", battery)
}

该方案比你当前截取子串转十六进制的实现更适合多字段提取场景,仅需一次解码就可以提取所有固定位置的业务数据,维护成本更低,性能也更好。


内容的提问来源于stack exchange,提问作者Barty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 13:39:03