dbinary

package
v0.1.9 Latest Latest
Warning

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

Go to latest
Published: Aug 9, 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 added in v0.1.9

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

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

func BeDecodeToBool added in v0.1.9

func BeDecodeToBool(b []byte) bool

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

func BeDecodeToFloat32 added in v0.1.9

func BeDecodeToFloat32(b []byte) float32

func BeDecodeToFloat64 added in v0.1.9

func BeDecodeToFloat64(b []byte) float64

func BeDecodeToInt added in v0.1.9

func BeDecodeToInt(b []byte) int

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

func BeDecodeToInt16 added in v0.1.9

func BeDecodeToInt16(b []byte) int16

func BeDecodeToInt32 added in v0.1.9

func BeDecodeToInt32(b []byte) int32

func BeDecodeToInt64 added in v0.1.9

func BeDecodeToInt64(b []byte) int64

func BeDecodeToInt8 added in v0.1.9

func BeDecodeToInt8(b []byte) int8

func BeDecodeToString added in v0.1.9

func BeDecodeToString(b []byte) string

func BeDecodeToUint added in v0.1.9

func BeDecodeToUint(b []byte) uint

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

func BeDecodeToUint16 added in v0.1.9

func BeDecodeToUint16(b []byte) uint16

func BeDecodeToUint32 added in v0.1.9

func BeDecodeToUint32(b []byte) uint32

func BeDecodeToUint64 added in v0.1.9

func BeDecodeToUint64(b []byte) uint64

func BeDecodeToUint8 added in v0.1.9

func BeDecodeToUint8(b []byte) uint8

func BeEncode added in v0.1.9

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 added in v0.1.9

func BeEncodeBool(b bool) []byte

func BeEncodeByLength added in v0.1.9

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

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

func BeEncodeFloat32 added in v0.1.9

func BeEncodeFloat32(f float32) []byte

func BeEncodeFloat64 added in v0.1.9

func BeEncodeFloat64(f float64) []byte

func BeEncodeInt added in v0.1.9

func BeEncodeInt(i int) []byte

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

func BeEncodeInt16 added in v0.1.9

func BeEncodeInt16(i int16) []byte

func BeEncodeInt32 added in v0.1.9

func BeEncodeInt32(i int32) []byte

func BeEncodeInt64 added in v0.1.9

func BeEncodeInt64(i int64) []byte

func BeEncodeInt8 added in v0.1.9

func BeEncodeInt8(i int8) []byte

func BeEncodeString added in v0.1.9

func BeEncodeString(s string) []byte

func BeEncodeUint added in v0.1.9

func BeEncodeUint(i uint) []byte

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

func BeEncodeUint16 added in v0.1.9

func BeEncodeUint16(i uint16) []byte

func BeEncodeUint32 added in v0.1.9

func BeEncodeUint32(i uint32) []byte

func BeEncodeUint64 added in v0.1.9

func BeEncodeUint64(i uint64) []byte

func BeEncodeUint8 added in v0.1.9

func BeEncodeUint8(i uint8) []byte

func BeFillUpSize added in v0.1.9

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 added in v0.1.9

func DecodeBits(bits []Bit) int

解析为int

func DecodeBitsToUint added in v0.1.9

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 added in v0.1.9

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

LeDecode 整形二进制解包,注意第二个及其后参数为字长确定的整形变量的指针地址,以便确定解析的[]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

func LeEncodeBool

func LeEncodeBool(b bool) []byte

func LeEncodeByLength

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

LeEncodeByLength 将变量转换为二进制[]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

LeEncodeUint 自动识别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 added in v0.1.9

type Bit int8

二进制位(0|1)

func DecodeBytesToBits added in v0.1.9

func DecodeBytesToBits(bs []byte) []Bit

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

func EncodeBits added in v0.1.9

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

默认编码

func EncodeBitsWithUint added in v0.1.9

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