mirror of https://github.com/siddontang/go.git
68 lines
1.2 KiB
Go
68 lines
1.2 KiB
Go
package num
|
|
|
|
import (
|
|
"encoding/binary"
|
|
)
|
|
|
|
//all are bigendian format
|
|
|
|
func BytesToUint16(b []byte) uint16 {
|
|
return binary.BigEndian.Uint16(b)
|
|
}
|
|
|
|
func Uint16ToBytes(u uint16) []byte {
|
|
buf := make([]byte, 2)
|
|
binary.BigEndian.PutUint16(buf, u)
|
|
return buf
|
|
}
|
|
|
|
func BytesToUint32(b []byte) uint32 {
|
|
return binary.BigEndian.Uint32(b)
|
|
}
|
|
|
|
func Uint32ToBytes(u uint32) []byte {
|
|
buf := make([]byte, 4)
|
|
binary.BigEndian.PutUint32(buf, u)
|
|
return buf
|
|
}
|
|
|
|
func BytesToUint64(b []byte) uint64 {
|
|
return binary.BigEndian.Uint64(b)
|
|
}
|
|
|
|
func Uint64ToBytes(u uint64) []byte {
|
|
buf := make([]byte, 8)
|
|
binary.BigEndian.PutUint64(buf, u)
|
|
return buf
|
|
}
|
|
|
|
func BytesToInt16(b []byte) int16 {
|
|
return int16(binary.BigEndian.Uint16(b))
|
|
}
|
|
|
|
func Int16ToBytes(u int16) []byte {
|
|
buf := make([]byte, 2)
|
|
binary.BigEndian.PutUint16(buf, uint16(u))
|
|
return buf
|
|
}
|
|
|
|
func BytesToInt32(b []byte) int32 {
|
|
return int32(binary.BigEndian.Uint32(b))
|
|
}
|
|
|
|
func Int32ToBytes(u int32) []byte {
|
|
buf := make([]byte, 4)
|
|
binary.BigEndian.PutUint32(buf, uint32(u))
|
|
return buf
|
|
}
|
|
|
|
func BytesToInt64(b []byte) int64 {
|
|
return int64(binary.BigEndian.Uint64(b))
|
|
}
|
|
|
|
func Int64ToBytes(u int64) []byte {
|
|
buf := make([]byte, 8)
|
|
binary.BigEndian.PutUint64(buf, uint64(u))
|
|
return buf
|
|
}
|