第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

循環(huán)將在 golang 中按 1 到 5 [] 字節(jié)的順序輸出

循環(huán)將在 golang 中按 1 到 5 [] 字節(jié)的順序輸出

Go
楊魅力 2022-11-08 16:32:25
如何制作一個(gè)按 1 到 5 [] 字節(jié)順序輸出的循環(huán)?這是我在輸出中需要的:[0][1][2]...[255][0 1][1 1][2 1]...etc (to max 5 bytes)例如,如果我從數(shù)字進(jìn)行正常循環(huán)并使用這些函數(shù)將它們轉(zhuǎn)換為字節(jié):for i := 0; i < 8589934590; i++ {    b : intToBytes(i)    fmt.Println(b)}func intToBytes(val int) []byte {    r := make([]byte, 5)    for i := int(0); i < 5; i++ {        r[i] = byte((val >> (8 * i)) & 0xff)    }    return r}輸出末尾會(huì)有額外的零。如果這個(gè)選項(xiàng)是正確的,那么如何去掉多余的零?
查看完整描述

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]


查看完整回答
反對(duì) 回復(fù) 2022-11-08
  • 1 回答
  • 0 關(guān)注
  • 130 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)