首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

encoding/hex

  • import "encoding/hex"
  • 概述
  • 索引
  • 示例

概述

包十六进制实现十六进制编码和解码。

索引

  • 变量
  • func Decode(dst, src []byte) (int, error)
  • func DecodeString(s string) ([]byte, error)
  • func DecodedLen(x int) int
  • func Dump(data []byte) string
  • func Dumper(w io.Writer) io.WriteCloser
  • func Encode(dst, src []byte) int
  • func EncodeToString(src []byte) string
  • func EncodedLen(n int) int
  • type InvalidByteError
  • func (e InvalidByteError) Error() string

示例

解码 DecodeString 转储转储器编码 EncodeToString

包文件

变量

ErrLength 是解码奇数长度片的结果。

代码语言:javascript
复制
var ErrLength = errors.New("encoding/hex: odd length hex string")
代码语言:javascript
复制
func Decode(dst, src []byte) (int, error)

Decode 将 src 解码为 DecodedLen(len(src)) 字节,返回写入 dst 的实际字节数。

解码期望 src 只包含十六进制字符,并且 src 应该有一个均匀的长度。

示例

代码语言:javascript
复制
package main

import (
	"encoding/hex"
	"fmt"
	"log"
)

func main() {
	src := []byte("48656c6c6f20476f7068657221")

	dst := make([]byte, hex.DecodedLen(len(src)))
	n, err := hex.Decode(dst, src)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Printf("%s\n", dst[:n])

}

func DecodeString(查看源代码)

代码语言:javascript
复制
func DecodeString(s string) ([]byte, error)

DecodeString 返回由十六进制字符串 s 表示的字节。

示例

代码语言:javascript
复制
package main

import (
	"encoding/hex"
	"fmt"
	"log"
)

func main() {
	const s = "48656c6c6f20476f7068657221"
	decoded, err := hex.DecodeString(s)
	if err != nil {
		log.Fatal(err)
	}

	fmt.Printf("%s\n", decoded)

}

func DecodedLen(查看源代码)

代码语言:javascript
复制
func DecodedLen(x int) int

DecodedLen 返回x个源字节解码的长度。具体来说,它返回 x/2。

代码语言:javascript
复制
func Dump(data []byte) string

转储返回一个包含给定数据的十六进制转储的字符串。十六进制转储的格式与hexdump -C命令行上的输出相匹配。

示例

代码语言:javascript
复制
package main

import (
	"encoding/hex"
	"fmt"
)

func main() {
	content := []byte("Go is an open source programming language.")

	fmt.Printf("%s", hex.Dump(content))

}
代码语言:javascript
复制
func Dumper(w io.Writer) io.WriteCloser

Dumper 返回一个 WriteCloser,它将所有写入数据的十六进制转储写入 w。转储的格式与hexdump -C命令行上的输出相匹配。

示例

代码语言:javascript
复制
package main

import (
	"encoding/hex"
	"os"
)

func main() {
	lines := []string{
		"Go is an open source programming language.",
		"\n",
		"We encourage all Go users to subscribe to golang-announce.",
	}

	stdoutDumper := hex.Dumper(os.Stdout)

	defer stdoutDumper.Close()

	for _, line := range lines {
		stdoutDumper.Write([]byte(line))
	}

}
代码语言:javascript
复制
func Encode(dst, src []byte) int

将编码 src 编码为 dst 的 EncodedLen(len(src)) 字节。为了方便起见,它返回写入 dst 的字节数,但该值始终为 EncodedLen(len(src))。编码实现十六进制编码。

示例

代码语言:javascript
复制
package main

import (
	"encoding/hex"
	"fmt"
)

func main() {
	src := []byte("Hello Gopher!")

	dst := make([]byte, hex.EncodedLen(len(src)))
	hex.Encode(dst, src)

	fmt.Printf("%s\n", dst)

}

func EncodeToString(查看源代码)

代码语言:javascript
复制
func EncodeToString(src []byte) string

EncodeToString 返回 src 的十六进制编码。

示例

代码语言:javascript
复制
package main

import (
	"encoding/hex"
	"fmt"
)

func main() {
	src := []byte("Hello")
	encodedStr := hex.EncodeToString(src)

	fmt.Printf("%s\n", encodedStr)

}

func EncodedLen(查看源代码)

代码语言:javascript
复制
func EncodedLen(n int) int

EncodedLen 返回n个源字节的编码长度。具体来说,它返回n * 2。

type InvalidByteError(查看源代码)

InvalidByteError 值描述由十六进制字符串中的无效字节导致的错误。

代码语言:javascript
复制
type InvalidByteError byte

func (InvalidByteError) Error(查看源代码)

代码语言:javascript
复制
func (e InvalidByteError) Error() string

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com