为了账号安全,请及时绑定邮箱和手机立即绑定

在字节数组中插入十六进制时出现问题

在字节数组中插入十六进制时出现问题

Go
宝慕林4294392 2022-08-30 15:12:39
我正在尝试将十六进制插入字节数组。十六进制应该像下面这样由mac addr组成,不要将mac地址转换为十六进制,只需在每个两个数字前面添加“0x”。mac = “00:19:10:08:FE:08” 十六进制 = 0x00、0x19、0x10、0x08、0xFE、0x08我制作了如下字符串切片以制作十六进制数组。mac := "00:19:10:08:FE:08"a := strings.Split(mac, ":")for i, v := range a {    a[i] = "0x" + v}fmt.Println(a) // output: [0x00 0x19 0x10 0x08 0xFE 0x08]我将字符串切片合并到字节切片中。myByte := []byte{0x15, 0x1a}myByte = append(myByte, a)但发生错误,如下所示,“不能使用(类型[]字符串)作为追加中的类型字节”。简而言之,我想用mac地址(“00:19:10:08:FE:08”)制作字节数组。字节数组应该是 []byte{0x00, 0x19, 0x19, 0x08, 0xfe, 0x08} 如何使用 Go 自动创建此字节数组?
查看完整描述

2 回答

?
紫衣仙女

TA贡献1839条经验 获得超15个赞

试试这个:net.ParseMAC(mac)


package main


import (

    "fmt"

    "log"

    "net"

)


func main() {

    mac := "00:19:10:08:FE:08"

    hw, err := net.ParseMAC(mac)

    if err != nil {

        log.Fatal(err)

    }

    fmt.Println(hw)

    // type HardwareAddr []byte

}


查看完整回答
反对 回复 2022-08-30
?
烙印99

TA贡献1829条经验 获得超13个赞

您需要将字符串(格式)转换为字节。如果您不添加前缀,这实际上可能会更容易。我怀疑这将是要走的路。"0x12""0x"strconf.ParseUint

现在,对于MAC地址,您可能最好按照@wasmup的建议使用,因为有多种可能的MAC格式(我已经看到至少12:34:56:78:9a:bc和1234.5678.9abcd)。net.ParseMAC


查看完整回答
反对 回复 2022-08-30
  • 2 回答
  • 0 关注
  • 138 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号