24 lines
317 B
Go
24 lines
317 B
Go
package mkvio
|
|
|
|
func pack(n int, b []byte) uint64 {
|
|
var v uint64
|
|
var k uint64 = (uint64(n) - 1) * 8
|
|
|
|
for i := 0; i < n; i++ {
|
|
v |= uint64(b[i]) << k
|
|
k -= 8
|
|
}
|
|
|
|
return v
|
|
}
|
|
|
|
func unpack(n int, v uint64) []byte {
|
|
var b []byte
|
|
|
|
for i := uint(n); i > 0; i-- {
|
|
b = append(b, byte(v>>(8*i))&0xff)
|
|
}
|
|
|
|
return b
|
|
}
|