美文网首页
encoding/hex

encoding/hex

作者: 酷走天涯 | 来源:发表于2018-12-25 09:25 被阅读1次

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

编码过程

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

解码过程

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格式的字符串


import (
    "encoding/hex"
    "fmt"
)

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

格式化hex dump,写入文件

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

相关文章

网友评论

      本文标题:encoding/hex

      本文链接:https://www.haomeiwen.com/subject/glcdoftx.html