前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >encoding/hex

encoding/hex

作者头像
酷走天涯
发布2019-06-11 16:30:24
6110
发布2019-06-11 16:30:24
举报

hex 实现了16进制字符表示编解码

func Encode(dst,src []byte)int func EncodeToString(src []byte)string func Decode(dst,src []byte)(int,error) func DecodeString(src []byte)(string,error) func DecodedLen(x int) int func EncodedLen(n int) int func Dump(data []byte) string func Dumper(w io.Writer) io.WriteCloser

编码过程

代码语言:javascript
复制
package main

import (
    "encoding/hex"
    "fmt"
)

func main() {
  str := []byte("12345678")
  n := hex.EncodedLen(len(str))
  dst := make([]byte,n)
  // 方式1 编码字符
  hex.Encode(dst,str)
  fmt.Println(dst)
  fmt.Println(string(dst))
  // 方式 2 编码为字符串
  fmt.Println(hex.EncodeToString(str))
}

image.png

解码过程

代码语言:javascript
复制
package main

import (
    "encoding/hex"
    "fmt"
)

func main() {
  str := []byte("3132333435363738")
  n := hex.DecodedLen(len(str))
  dst := make([]byte,n)
  // 方式1 编码字符
  hex.Decode(dst,str)
  fmt.Println(dst)
  fmt.Println(string(dst))

  // 方式 2 编码为字符串
  data,error := hex.DecodeString(string(str))
  if error != nil{
      fmt.Println(error)
  }
  fmt.Println(string(data))
}

image.png

我们把字符串3132333435363738 解码后 得到原始数据 12345678

hex dump格式的字符串
代码语言:javascript
复制
import (
    "encoding/hex"
    "fmt"
)

func main() {
  str := []byte("12345678")
  fmt.Println(hex.Dump(str))
}

image.png

格式化hex dump,写入文件
代码语言:javascript
复制
package main

import (
    "encoding/hex"
        "os"
)

func main() {
  str := []byte("12345678")
  fileHex,_:= os.Create("/Users/xujie/go/src/awesomeProject/main/hex.txt")
  defer fileHex.Close()
  ioWriter := hex.Dumper(fileHex)
  ioWriter.Write(str)
}

image.png

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.12.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • hex dump格式的字符串
  • 格式化hex dump,写入文件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档