1 回答

TA貢獻1864條經(jīng)驗 獲得超2個贊
最簡單的方法是將字節(jié)簡單地解釋為大端整數(shù)。由于 Go 中沒有 int48 類型(即六字節(jié)大整數(shù)),因此您必須首先使用前導零擴展字節(jié)切片,直到它適合下一個最大類型 int64 或 uint64。然后與標準 for 循環(huán)交互,并為每次迭代反轉解碼:
package main
import (
"encoding/binary"
"fmt"
)
func main() {
lower := []byte{0, 0, 0, 0, 0, 0}
lowerInt := binary.BigEndian.Uint64(append([]byte{0, 0}, lower...))
upper := []byte{0, 0, 0, 0, 0, 255}
upperInt := binary.BigEndian.Uint64(append([]byte{0, 0}, upper...))
buf := make([]byte, 8)
for i := lowerInt; i <= upperInt; i++ {
binary.BigEndian.PutUint64(buf, i)
fmt.Println(buf[2:])
}
}
// Output:
// [0 0 0 0 0 0]
// [0 0 0 0 0 1]
// ...
// [0 0 0 0 0 254]
// [0 0 0 0 0 255]
在操場上嘗試:https: //play.golang.org/p/86iN0V47nZi
- 1 回答
- 0 關注
- 139 瀏覽
添加回答
舉報