123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package util
- // big endian
- 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
- }
- 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
- }
- func BytesToUint16(b []byte) (v uint16) {
- v += uint16(b[0])
- v <<= 8
- v += uint16(b[1])
- return
- }
- func Uint64toBytes(b []byte, v uint64) {
- for i := uint(0); i < 8; i++ {
- b[7-i] = byte(v >> (i * 8))
- }
- }
- func Uint32toBytes(b []byte, v uint32) {
- for i := uint(0); i < 4; i++ {
- b[3-i] = byte(v >> (i * 8))
- }
- }
- func Uint16toBytes(b []byte, v uint16) {
- b[0] = byte(v >> 8)
- b[1] = byte(v)
- }
- func Uint8toBytes(b []byte, v uint8) {
- b[0] = byte(v)
- }
|