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数字)