如果我字節數組:byte_array := []byte("klm,\x15\xf1\n")我想以 LittleEndian 順序將字節 \x15 和 \xf1 轉換為 uint16。最簡單的方法是什么?嘗試了以下方法:var new_uint uint16bff := bytes.newRead(byte_array[4:5])err = binary.Read(buff, binary.LittleEndian, &new_uint)但是我一直沒有得到任何東西,而且這相對復雜,有沒有更簡單的方法呢?
1 回答

精慕HU
TA貢獻1845條經驗 獲得超8個贊
您有 2 個選項,像您已經使用的那樣使用 binary.LittleEndian,更短的方法是:
u16 := binary.LittleEndian.Uint16(byte_array[4:])
或者,如果你喜歡危險的生活,你可以使用 unsafe:
// This will return the wrong number on a BE system,
// also unsafe is not available on GAE.
u16 := *(*uint16)(unsafe.Pointer(&byte_array[4]))
playground
- 1 回答
- 0 關注
- 481 瀏覽
添加回答
舉報
0/150
提交
取消