[feat] package bele: new func BEUint64

pull/2/head
q191201771 5 years ago
parent e71acc9757
commit 0850831b75

@ -21,6 +21,8 @@ import (
"math"
)
// 反序列化
func BEUint16(p []byte) uint16 {
return binary.BigEndian.Uint16(p)
}
@ -33,6 +35,10 @@ func BEUint32(p []byte) (ret uint32) {
return binary.BigEndian.Uint32(p)
}
func BEUint64(p []byte) (ret uint64) {
return binary.BigEndian.Uint64(p)
}
func BEFloat64(p []byte) (ret float64) {
a := binary.BigEndian.Uint64(p)
return math.Float64frombits(a)
@ -42,6 +48,8 @@ func LEUint32(p []byte) (ret uint32) {
return binary.LittleEndian.Uint32(p)
}
// 序列化
func BEPutUint24(out []byte, in uint32) {
out[0] = byte(in >> 16)
out[1] = byte(in >> 8)

@ -68,6 +68,22 @@ func TestBEUint32(t *testing.T) {
}
}
func TestBEUint64(t *testing.T) {
vector := []struct {
input []byte
output uint64
}{
{input: []byte{0, 0, 0, 0, 0, 0, 0, 0}, output: 0},
{input: []byte{0, 0, 0, 0, 1, 0, 0, 0}, output: 1 * 256 * 256 * 256},
{input: []byte{0, 0, 0, 0, 12, 34, 56, 78}, output: 12*256*256*256 + 34*256*256 + 56*256 + 78},
{input: []byte{0, 12, 34, 56, 78, 0, 0, 0}, output: 12*256*256*256*256*256*256 + 34*256*256*256*256*256 + 56*256*256*256*256 + 78*256*256*256},
}
for i := 0; i < len(vector); i++ {
assert.Equal(t, vector[i].output, BEUint64(vector[i].input))
}
}
func TestBEFloat64(t *testing.T) {
vector := []int{
1,

Loading…
Cancel
Save