Big Endian and Little Endian in Golang and .Net
最近用 Golang 寫一段程式來讀取 .Net 寫進 Redis 的 byte 資料,但意外發現在 .Net 裡面寫入 byte 時是 Little Endian(BinaryFormatter)。
在 Golang 裡面讀取時,有直接區分 BigEndian & LittleEndian。
所謂的 BigEndian 就是寫入 byte 時是由「左」向「右」寫入;反過來,LittleENdian 就是在寫入時由「右」向「左」寫入。
例:\x02 \x01 如果是 BigEndian 讀出時結果會是 513,但如果是 LittleEndian 讀出時結果會是 258。
所以在不同的語言實作時,還是要先了解一下各語言的實作方式。
參考連結
Big-Endian 與 Little-Endian 的差異與判斷程式碼
var result := int32(binary.LittleEndian.Uint32(sourceByte))
var result := int32(binary.BIgEndian.Uint32(sourceByte))