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

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

循環(huán)遍歷字節(jié)數(shù)組的所有值

循環(huán)遍歷字節(jié)數(shù)組的所有值

Go
慕田峪7331174 2023-07-10 17:45:21
我正在嘗試循環(huán)遍歷小字節(jié)數(shù)組(64 字節(jié))的所有值。我想以數(shù)字時(shí)鐘的方式遞增,從索引 0 開(kāi)始,到 0-255,然后遞增索引 1,重復(fù)。我知道這可能是一種遞歸方法,但我無(wú)法理解其中的邏輯?;旧希瑢?duì)于 4 字節(jié)數(shù)組(為了方便而較?。┑?輪值:[0 0 0 0]第256輪值 [255 0 0 0]第256輪值[0 1 0 0]第257輪值[1 1 0 0]到目前為止我所擁有的:func allValues() {    currentPlaceIndex := 0    content := make([]uint8, 64)    max := 256    for i := 0; i < max; i++ {        content[currentPlaceIndex] = uint8(i)    }    fmt.Println(content)    content[currentPlaceIndex] = 0}我似乎不知道如何遞歸這個(gè)。
查看完整描述

1 回答

?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

將整數(shù)轉(zhuǎn)換為字節(jié)數(shù)組

該表示法基本上是以 256 為基數(shù)。第一個(gè)字節(jié)將是round number % 256.?然后將輪數(shù)除以256,如此重復(fù),直到輪數(shù)變?yōu)?。

由于 256 是一個(gè)特殊數(shù)字 (256 = 2?8?),因此您可以使用按位運(yùn)算進(jìn)行計(jì)算。例如,余數(shù)等于 的位掩碼0xff,除以 256 等于右移 8。

big.Int另請(qǐng)注意,標(biāo)準(zhǔn)庫(kù)中有一種類(lèi)型表示(有符號(hào))多精度整數(shù)。它有一個(gè)Int.Bytes()方法將絕對(duì)值作為大端字節(jié)片返回。這“幾乎”是我們想要的,只是字節(jié)順序不同。因此,您可以簡(jiǎn)單地將整數(shù)轉(zhuǎn)換為big.Int(例如使用該Int.SetString()方法),獲取其字節(jié)切片并將其反轉(zhuǎn)。

迭代值

如果您不想轉(zhuǎn)換單個(gè)整數(shù)而只想迭代后續(xù)值,請(qǐng)按如下所示操作:

  1. 您從一個(gè)完整的零切片或數(shù)組開(kāi)始。

  2. 檢查切片的第一個(gè)元素。如果 < 255,只需將其加一。完成迭代。

  3. 如果是 255,則將其歸零,并嘗試對(duì)第二個(gè)元素執(zhí)行相同的操作:轉(zhuǎn)到步驟 2。

因此,如果您有一個(gè)狀態(tài),則可以通過(guò)以下方式計(jì)算下一個(gè)狀態(tài):

func next(data []byte) {

? ? for idx := range data {

? ? ? ? if data[idx] < 255 {

? ? ? ? ? ? data[idx]++

? ? ? ? ? ? return

? ? ? ? }

? ? ? ? data[idx] = 0

? ? }

? ? fmt.Println("overflow")

}

您可以這樣測(cè)試它:


data := make([]byte, 64)

for iter := 0; iter < 600; iter++ {

? ? next(data)

? ? fmt.Println(data)

}

這將輸出(在Go Playground上嘗試):


[1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

[2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

[3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

...

[255 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

[0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

[1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

...

[255 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

[0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

[1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

[2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

...


查看完整回答
反對(duì) 回復(fù) 2023-07-10
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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