큰 숫자를 바이트 목록 (이동의 uint8)으로 인코딩하려고합니다. 바이트 수를 알 수 없으므로 벡터를 사용하고 싶습니다. 하지만 Go는 바이트의 벡터를 제공하지 않습니다. 어떻게해야합니까? 그런 바이트 벡터 조각을 얻을 수 있습니까?Go를 사용하면 알 수없는 바이트 수를 벡터에 추가하고 바이트 조각을 얻는 방법은 무엇입니까?
데이터 압축을 구현하려고합니다. 작은 숫자와 큰 숫자를 같은 수의 바이트로 저장하는 대신 작은 숫자 ( )와 적은 바이트를 사용하는 변수 바이트를 구현하고 많은 수의 바이트를 사용합니다.
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) }
내가 그래서 난 바이트 배열을 반환 할 수 FUNC 소원에 바이너리 파일에 같은 코드를 많이 기록 할 :
내 코드는 유효하지 않은 유형의 주장을 컴파일 할 수 없습니다.
벡터에서 코드 예제를 찾지 못했습니다.
는 사실, 나는 내 요구를 충족하는 기능을 bytes.Add 사용할 수 있습니다 찾을 수 있습니다. 벡터를 전혀 사용할 필요가 없습니다. –