[問題] 如何將int32轉成bytes

作者: andwwww (要有決心啊)   2021-10-02 20:54:44
我現在想把一個integer 32轉成bytes,
但似乎都查不到比較簡單直接的作法,
我現在是寫成一個function,
def Int32toBytes(Number)
B1 = chr(Number // 2 ** 24).encode('latin1')
Q1 = Number % 2 ** 24
B2 = chr(Q1 // 2 ** 16).encode('latin1')
Q2 = Q1 % 2 ** 16
B3 = chr(Q2 // 2 ** 8).encode('latin1')
Q3 = Q2 % 2 ** 8
B4 = chr(Q3).encode('latin1')
B = B1 + B2 + B3 + B4
return B
譬如我執行
Int32toBytes(3),就可以得到 b'\x00\x00\x00\x03'
Int32toBytes(1000),就可以得到 b'\x00\x00\x03\xe8'
不知道有沒有更好的方法,感謝幫忙!!
作者: s0914714 (YA)   2021-10-02 21:27:00
用struct的pack
作者: Woqeker (窩顆ker)   2021-10-02 21:31:00
to_bytes?
作者: andwwww (要有決心啊)   2021-10-03 00:42:00
感謝一樓的方法
作者: LP9527 (ㄊㄇ抽菸都去)   2021-10-03 03:36:00
作者: andwwww (要有決心啊)   2021-10-03 03:48:00
感謝四樓的說明 二樓的方法更適合我的應用 感謝!!
作者: leolarrel (真.粽子無雙)   2021-10-04 13:56:00
二樓正解

Links booklink

Contact Us: admin [ a t ] ucptt.com