gbinary

package
v1.16.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2021 License: MIT Imports: 4 Imported by: 0

Documentation

Overview

Package gbinary provides useful API for handling binary/bytes data.

Note that package gbinary encodes the data using LittleEndian in default.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BeDecode

func BeDecode(b []byte, values ...interface{}) error

整形二进制解包,注意第二个及其后参数为字长确定的整形变量的指针地址,以便确定解析的[]byte长度, 例如:int8/16/32/64、uint8/16/32/64、float32/64等等

func BeDecodeToBool

func BeDecodeToBool(b []byte) bool

将二进制解析为bool类型,识别标准是判断二进制中数值是否都为0,或者为空。

func BeDecodeToFloat32

func BeDecodeToFloat32(b []byte) float32

func BeDecodeToFloat64

func BeDecodeToFloat64(b []byte) float64

func BeDecodeToInt

func BeDecodeToInt(b []byte) int

将二进制解析为int类型,根据[]byte的长度进行自动转换. 注意内部使用的是uint*,使用int会造成位丢失。

func BeDecodeToInt16

func BeDecodeToInt16(b []byte) int16

func BeDecodeToInt32

func BeDecodeToInt32(b []byte) int32

func BeDecodeToInt64

func BeDecodeToInt64(b []byte) int64

func BeDecodeToInt8

func BeDecodeToInt8(b []byte) int8

func BeDecodeToString

func BeDecodeToString(b []byte) string

func BeDecodeToUint

func BeDecodeToUint(b []byte) uint

将二进制解析为uint类型,根据[]byte的长度进行自动转换

func BeDecodeToUint16

func BeDecodeToUint16(b []byte) uint16

func BeDecodeToUint32

func BeDecodeToUint32(b []byte) uint32

func BeDecodeToUint64

func BeDecodeToUint64(b []byte) uint64

func BeDecodeToUint8

func BeDecodeToUint8(b []byte) uint8

func BeEncode

func BeEncode(values ...interface{}) []byte

BeEncode encodes one or multiple <values> into bytes using BigEndian. It uses type asserting checking the type of each value of <values> and internally calls corresponding converting function do the bytes converting.

It supports common variable type asserting, and finally it uses fmt.Sprintf converting value to string and then to bytes.

func BeEncodeBool

func BeEncodeBool(b bool) []byte

func BeEncodeByLength

func BeEncodeByLength(length int, values ...interface{}) []byte

将变量转换为二进制[]byte,并指定固定的[]byte长度返回,长度单位为字节(byte); 如果转换的二进制长度超过指定长度,那么进行截断处理

func BeEncodeFloat32

func BeEncodeFloat32(f float32) []byte

func BeEncodeFloat64

func BeEncodeFloat64(f float64) []byte

func BeEncodeInt

func BeEncodeInt(i int) []byte

自动识别int类型长度,转换为[]byte

func BeEncodeInt16

func BeEncodeInt16(i int16) []byte

func BeEncodeInt32

func BeEncodeInt32(i int32) []byte

func BeEncodeInt64

func BeEncodeInt64(i int64) []byte

func BeEncodeInt8

func BeEncodeInt8(i int8) []byte

func BeEncodeString

func BeEncodeString(s string) []byte

func BeEncodeUint

func BeEncodeUint(i uint) []byte

自动识别uint类型长度,转换为[]byte

func BeEncodeUint16

func BeEncodeUint16(i uint16) []byte

func BeEncodeUint32

func BeEncodeUint32(i uint32) []byte

func BeEncodeUint64

func BeEncodeUint64(i uint64) []byte

func BeEncodeUint8

func BeEncodeUint8(i uint8) []byte

func BeFillUpSize

func BeFillUpSize(b []byte, l int) []byte

BeFillUpSize fills up the bytes <b> to given length <l> using big BigEndian.

Note that it creates a new bytes slice by copying the original one to avoid changing the original parameter bytes.

func Decode

func Decode(b []byte, values ...interface{}) error

func DecodeBits

func DecodeBits(bits []Bit) int

解析为int

func DecodeBitsToUint

func DecodeBitsToUint(bits []Bit) uint

解析为uint

func DecodeToBool

func DecodeToBool(b []byte) bool

func DecodeToFloat32

func DecodeToFloat32(b []byte) float32

func DecodeToFloat64

func DecodeToFloat64(b []byte) float64

func DecodeToInt

func DecodeToInt(b []byte) int

func DecodeToInt16

func DecodeToInt16(b []byte) int16

func DecodeToInt32

func DecodeToInt32(b []byte) int32

func DecodeToInt64

func DecodeToInt64(b []byte) int64

func DecodeToInt8

func DecodeToInt8(b []byte) int8

func DecodeToString

func DecodeToString(b []byte) string

func DecodeToUint

func DecodeToUint(b []byte) uint

func DecodeToUint16

func DecodeToUint16(b []byte) uint16

func DecodeToUint32

func DecodeToUint32(b []byte) uint32

func DecodeToUint64

func DecodeToUint64(b []byte) uint64

func DecodeToUint8

func DecodeToUint8(b []byte) uint8

func Encode

func Encode(values ...interface{}) []byte

func EncodeBitsToBytes

func EncodeBitsToBytes(bits []Bit) []byte

将bits转换为[]byte,从左至右进行编码,不足1 byte按0往末尾补充

func EncodeBool

func EncodeBool(b bool) []byte

func EncodeByLength

func EncodeByLength(length int, values ...interface{}) []byte

func EncodeFloat32

func EncodeFloat32(f float32) []byte

func EncodeFloat64

func EncodeFloat64(f float64) []byte

func EncodeInt

func EncodeInt(i int) []byte

func EncodeInt16

func EncodeInt16(i int16) []byte

func EncodeInt32

func EncodeInt32(i int32) []byte

func EncodeInt64

func EncodeInt64(i int64) []byte

func EncodeInt8

func EncodeInt8(i int8) []byte

func EncodeString

func EncodeString(s string) []byte

func EncodeUint

func EncodeUint(i uint) []byte

func EncodeUint16

func EncodeUint16(i uint16) []byte

func EncodeUint32

func EncodeUint32(i uint32) []byte

func EncodeUint64

func EncodeUint64(i uint64) []byte

func EncodeUint8

func EncodeUint8(i uint8) []byte

func LeDecode

func LeDecode(b []byte, values ...interface{}) error

整形二进制解包,注意第二个及其后参数为字长确定的整形变量的指针地址,以便确定解析的[]byte长度, 例如:int8/16/32/64、uint8/16/32/64、float32/64等等

func LeDecodeToBool

func LeDecodeToBool(b []byte) bool

将二进制解析为bool类型,识别标准是判断二进制中数值是否都为0,或者为空。

func LeDecodeToFloat32

func LeDecodeToFloat32(b []byte) float32

func LeDecodeToFloat64

func LeDecodeToFloat64(b []byte) float64

func LeDecodeToInt

func LeDecodeToInt(b []byte) int

将二进制解析为int类型,根据[]byte的长度进行自动转换. 注意内部使用的是uint*,使用int会造成位丢失。

func LeDecodeToInt16

func LeDecodeToInt16(b []byte) int16

func LeDecodeToInt32

func LeDecodeToInt32(b []byte) int32

func LeDecodeToInt64

func LeDecodeToInt64(b []byte) int64

func LeDecodeToInt8

func LeDecodeToInt8(b []byte) int8

func LeDecodeToString

func LeDecodeToString(b []byte) string

func LeDecodeToUint

func LeDecodeToUint(b []byte) uint

将二进制解析为uint类型,根据[]byte的长度进行自动转换

func LeDecodeToUint16

func LeDecodeToUint16(b []byte) uint16

func LeDecodeToUint32

func LeDecodeToUint32(b []byte) uint32

func LeDecodeToUint64

func LeDecodeToUint64(b []byte) uint64

func LeDecodeToUint8

func LeDecodeToUint8(b []byte) uint8

func LeEncode

func LeEncode(values ...interface{}) []byte

LeEncode encodes one or multiple <values> into bytes using LittleEndian. It uses type asserting checking the type of each value of <values> and internally calls corresponding converting function do the bytes converting.

It supports common variable type asserting, and finally it uses fmt.Sprintf converting value to string and then to bytes.

func LeEncodeBool

func LeEncodeBool(b bool) []byte

func LeEncodeByLength

func LeEncodeByLength(length int, values ...interface{}) []byte

将变量转换为二进制[]byte,并指定固定的[]byte长度返回,长度单位为字节(byte); 如果转换的二进制长度超过指定长度,那么进行截断处理

func LeEncodeFloat32

func LeEncodeFloat32(f float32) []byte

func LeEncodeFloat64

func LeEncodeFloat64(f float64) []byte

func LeEncodeInt

func LeEncodeInt(i int) []byte

自动识别int类型长度,转换为[]byte

func LeEncodeInt16

func LeEncodeInt16(i int16) []byte

func LeEncodeInt32

func LeEncodeInt32(i int32) []byte

func LeEncodeInt64

func LeEncodeInt64(i int64) []byte

func LeEncodeInt8

func LeEncodeInt8(i int8) []byte

func LeEncodeString

func LeEncodeString(s string) []byte

func LeEncodeUint

func LeEncodeUint(i uint) []byte

自动识别uint类型长度,转换为[]byte

func LeEncodeUint16

func LeEncodeUint16(i uint16) []byte

func LeEncodeUint32

func LeEncodeUint32(i uint32) []byte

func LeEncodeUint64

func LeEncodeUint64(i uint64) []byte

func LeEncodeUint8

func LeEncodeUint8(i uint8) []byte

func LeFillUpSize

func LeFillUpSize(b []byte, l int) []byte

当b位数不够时,进行高位补0。 注意这里为了不影响原有输入参数,是采用的值复制设计。

Types

type Bit

type Bit int8

二进制位(0|1)

func DecodeBytesToBits

func DecodeBytesToBits(bs []byte) []Bit

解析[]byte为字位数组[]uint8

func EncodeBits

func EncodeBits(bits []Bit, i int, l int) []Bit

默认编码

func EncodeBitsWithUint

func EncodeBitsWithUint(bits []Bit, ui uint, l int) []Bit

将ui按位合并到bits数组中,并占length长度位(注意:uis数组中存放的是二进制的0|1数字)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL