在Golang中將字節流轉換爲字節流片段的最佳方式是什麼?目前我正在嘗試在golang中複製一個java程序,我相信我有一些事實,即java將字節流作爲有符號值讀取,而golang將其視爲無符號值。將無符號字節流轉換爲有符號字節流Golang
當我用Java打印時,負值是不同的。正面都是一樣的:
的Java:
8 | -8 | -58 | -61 | -56 | -113 | 42 | 16 | -64 | 2 | 24 | -16 | 1
Golang:
8 | | | 195 | 200 | 143 | 42 | 16 | 192 | 2 | 2 | 240 | 1
目前,GO我執行權的樣子:
//open the file with os.open
//create new reader and unzip it
//reads from zip file and returns an array of bytes associated with it.
data, err := ioutil.ReadAll(fz)
if err != nil {
return nil, err
}
//reflect.TypeOf shows this is a []uint8
//I want this to be a []int8 (so signed).
在Java中實現是非常多的:
//create buffer reader
//create input stream
//create datainput stream
//use the .Read function to get the values required.
我沒有看到任何簡單的方法來快速將它轉換爲signed int(也許我錯了)。我可以嘗試迭代整個切片,將每個值轉換爲帶符號的int,但是這種方法似乎相當混亂。這也需要我對每一個進行操作。有沒有一種更清晰的方式來轉換切片?
http://stackoverflow.com/q/12357865/4740606和http://stackoverflow.com/q/28949063/4740606的最佳答案可能對您有所幫助 – Snowman