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

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

使用Go,如何將未知數(shù)量的字節(jié)追加到向量中并獲取字節(jié)切片?

使用Go,如何將未知數(shù)量的字節(jié)追加到向量中并獲取字節(jié)切片?

Go
慕妹3242003 2021-04-09 08:36:15
我正在嘗試將大量數(shù)字編碼為字節(jié)列表(Go中的uint8)。字節(jié)數(shù)未知,因此我想使用向量。但是Go不提供字節(jié)向量,我該怎么辦?并有可能獲得這種字節(jié)向量的切片嗎?我打算實(shí)現(xiàn)數(shù)據(jù)壓縮。我實(shí)現(xiàn)了一個(gè)可變字節(jié),而不是存儲(chǔ)具有相同字節(jié)數(shù)的小號(hào)和大號(hào),而是使用了較少的小號(hào)字節(jié)和更多的大號(hào)字節(jié)。我的代碼無法編譯,類型斷言無效:  1 package main  2   3 import (  4     //"fmt"  5     "container/vector"  6 )  7   8 func vbEncodeNumber(n uint) []byte{  9     bytes := new(vector.Vector) 10     for { 11         bytes.Push(n % 128) 12         if n < 128 { 13             break 14         } 15         n /= 128 16     } 17     bytes.Set(bytes.Len()-1, bytes.Last().(byte)+byte(128)) 18     return bytes.Data().([]byte) // <- 19 } 20  21 func main() { vbEncodeNumber(10000) }我希望將很多這樣的代碼寫入二進(jìn)制文件,所以我希望func可以返回字節(jié)數(shù)組。我還沒有找到關(guān)于vector的代碼示例。
查看完整描述

3 回答

?
猛跑小豬

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

看一下字節(jié)包和那里的Buffer類型。您可以將int作為字節(jié)寫入緩沖區(qū),然后可以使用Bytes()方法訪問緩沖區(qū)的字節(jié)片。


查看完整回答
反對(duì) 回復(fù) 2021-04-26
?
BIG陽

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

由于通用的附加和復(fù)制已添加到語言中,因此我發(fā)現(xiàn)矢量的用途要少得多。這是我減少復(fù)制的一次拍攝的方式:


package main


import "fmt"


func vbEncodeNumber(n uint) []byte {

    bytes := make([]byte, 0, 4)

    for n > 0 {

        bytes = append(bytes, byte(n%256))

        n >>= 8

    }

    return bytes

}


func main() {

    bytes := vbEncodeNumber(10000)

    for i := len(bytes)-1; i >= 0 ; i-- {

        fmt.Printf("%02x ", bytes[i])

    }

    fmt.Println("")

}


查看完整回答
反對(duì) 回復(fù) 2021-04-26
  • 3 回答
  • 0 關(guān)注
  • 379 瀏覽

添加回答

舉報(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)