亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python struct.pack 小端 = 大端

Python struct.pack 小端 = 大端

紅糖糍粑 2023-03-22 13:54:08
我試圖確保我擁有的一些數據被編碼為大端二進制。我正在使用 struct 模塊來執行此操作。但是,我將兩者都轉換為大端或小端的結果是相同的。為什么?import sysimport jsonimport structdata = {    "val1": 20,    "val2": 24}b = json.dumps(data, ensure_ascii=False).encode("utf-8")little = struct.pack(f"<{len(b)}s", b)big = struct.pack(f">{len(b)}s", b)print(f"System byteorder: {sys.byteorder}")print(f"data:\t")print(f"little:\t{little}")print(f"big:\t{big}")print((big == little) and (little == b))val = 25b = bytes([val])big = struct.pack(">H", val)little = struct.pack("<H", val)print()print()print(f"data:\t")print(f"little:\t{little}")print(f"big:\t{big}")print((big == little) and (little == b))給出以下結果System byteorder: littledata:   b'{"val1": 20, "val2": 24}'little: b'{"val1": 20, "val2": 24}'big:    b'{"val1": 20, "val2": 24}'Truedata:   b'\x19'little: b'\x19\x00'big:    b'\x00\x19'False
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

您正在使用格式說明符“s” char[],它只是一串八位字節。一串字符/八位字節沒有字節序。當您使用“H”時,unsigned short您會看到大/小的順序相反。



查看完整回答
反對 回復 2023-03-22
  • 1 回答
  • 0 關注
  • 318 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號