我有一个由3个字节组成的片(以LE排序),它表示一个带符号的整数,我想将它转换成任何整数类型,最好是int32
,然后再转换回它自己.
b := []byte{0x01, 0x00, 0x80}
我try 使用big.Int
来实现这一点,但它的SetBytes()
和Bytes()
方法似乎只适用于无符号整数类型,而不考虑big.Int
实例也可以存储有符号整数类型.
下面是一个与我正在try 做的事情相当的Python:
b = b"\x01\x00\x80"
i = int.from_bytes(b, "little", signed=True)
b_again = int.to_bytes("little", signed=True)
编辑:这道题不是Go []byte to Little/Big-Endian Signed Integer or Float?题的翻版.我试着把答案应用到那里,但他们的结果出乎意料.请看我的第一条 comments .