seaweedfs/go/util/bytes.go

34 lines
635 B
Go
Raw Normal View History

package util
2013-01-17 16:56:56 +08:00
func BytesToUint64(b []byte) (v uint64) {
length := uint(len(b))
for i := uint(0); i < length-1; i++ {
v += uint64(b[i])
v <<= 8
}
v += uint64(b[length-1])
return
}
2013-01-17 16:56:56 +08:00
func BytesToUint32(b []byte) (v uint32) {
length := uint(len(b))
for i := uint(0); i < length-1; i++ {
v += uint32(b[i])
v <<= 8
}
v += uint32(b[length-1])
return
}
2013-01-17 16:56:56 +08:00
func Uint64toBytes(b []byte, v uint64) {
for i := uint(0); i < 8; i++ {
b[7-i] = byte(v >> (i * 8))
}
}
2013-01-17 16:56:56 +08:00
func Uint32toBytes(b []byte, v uint32) {
for i := uint(0); i < 4; i++ {
b[3-i] = byte(v >> (i * 8))
}
}
2013-01-17 16:56:56 +08:00
func Uint8toBytes(b []byte, v uint8) {
b[0] = byte(v)
}