簡體   English   中英

int16到字節數組

[英]int16 to byte array

我正在嘗試將int16轉換為字節數組,但我似乎無法讓它工作。
這就是我現在所擁有的:

int16 i := 41
a := []byte(string(i))//this line is wrong

此外,如果有人想知道數組需要長度為2。

雖然FUZxxl的答案有效,但您也可以使用編碼/二進制包:

var i int16 = 41
b := make([]byte, 2)
binary.LittleEndian.PutUint16(b, uint16(i))

編碼/二進制包具有預編譯函數,用於為所有固定大小的整數編碼小端和大端,以及一些易於使用的函數,如果您使用讀者和寫入器而不是字節片。 例:

var i int16 = 41
err := binary.Write(w, binary.LittleEndian, i)

如果你想獲得int16的字節,試試這樣的事情:

var i int16 = 41
var h, l uint8 = uint8(i>>8), uint8(i&0xff)

Go嘗試使編寫依賴於平台屬性的程序(如字節順序)變得困難。 因此,禁止導致這種依賴性的類型懲罰(例如用int16覆蓋字節數組)。

如果你真的想用腳射擊自己,試試包不安全

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM