登录
首页 >  Golang >  Go问答

问题出现在将十六进制转换为字节数组时

来源:stackoverflow

时间:2024-02-22 10:36:24 498浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《问题出现在将十六进制转换为字节数组时》,这篇文章主要会讲到等等知识点,不知道大家对其都有多少了解,下面我们就一起来看一吧!当然,非常希望大家能多多评论,给出合理的建议,我们一起学习,一起进步!

问题内容

我正在尝试将十六进制插入字节数组。

十六进制应该由 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)

但是发生了如下错误, “不能在附加中使用 (type []string) 作为字节类型”。

简而言之, 我想用mac地址(“00:19:10:08:fe:08”)制作字节数组。 字节数组应该是 []字节{0x00、0x19、0x19、0x08、0xfe、0x08} 如何使用 go 自动生成这个字节数组?


正确答案


使用net.parsemac(mac)尝试this

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
}

以上就是《问题出现在将十六进制转换为字节数组时》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>