1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
這是一個(gè)解決方案。使用 append 更新字節(jié)切片長度。當(dāng)移位結(jié)果為零時(shí)停止。
package main
import "fmt"
func intToBytes(val int) []byte {
b := make([]byte, 0, 5)
for i := range b[:cap(b)] {
v := val >> (8 * i)
if v == 0 && i != 0 {
break
}
b = append(b, byte(v))
}
return b
}
func main() {
for i := 0; i < 4; i++ {
b := intToBytes(i)
fmt.Println(b)
}
fmt.Println("...")
for i := 260 - 8; i < 260; i++ {
b := intToBytes(i)
fmt.Println(b)
}
fmt.Println("...")
for i := 8589934590 - 4; i < 8589934590; i++ {
b := intToBytes(i)
fmt.Println(b)
}
}
https://go.dev/play/p/b91oYBpOw_Y
[0]
[1]
[2]
[3]
...
[252]
[253]
[254]
[255]
[0 1]
[1 1]
[2 1]
[3 1]
...
[250 255 255 255 1]
[251 255 255 255 1]
[252 255 255 255 1]
[253 255 255 255 1]
- 1 回答
- 0 關(guān)注
- 130 瀏覽
添加回答
舉報(bào)