/ / 'X01x01x00' को कैसे अनपैक और डीकोड करना है? [बंद] - अजगर

'X xxx01x00' को अनपैक और डीकोड कैसे करें? [बंद] - अजगर

मैं निम्नलिखित आउटपुट का सामना कर रहा हूं और मैं वास्तव में इसे समझ नहीं सकता। क्या आप सलाह दे सकते हैं कि यह वास्तव में क्या है? इसे अनपैक कैसे करें?

"@x01x01x00"

यह विशुद्ध रूप से द्विआधारी या हेक्साडेसिमल नहीं दिखता है। मैं इसका ASCII प्रतिनिधित्व देखना चाहूंगा।

उत्तर:

उत्तर № 1 के लिए 1

यह 64, 1, 1, 0 मानों के साथ चार बाइट्स का अनुक्रम प्रतीत होता है।

इसकी व्याख्या करने के लिए, आपको यह जानना होगा कि यह कैसे एनकोड किया गया था या इसे किसका प्रतिनिधित्व करना चाहिए था।

आम तौर पर, आप पायथन में बाइनरी डेटा को अनपैक कर सकते हैं unpack में कार्य struct मॉड्यूल:

import struct

intval = struct.unpack("i", "@x01x01x00")
shortvals = struct.unpack("hh", "@x01x01x00")

सबसे पहला unpack लाइन आपको 4-बाइट पूर्णांक के रूप में व्याख्या की गई अपनी स्ट्रिंग का मान देगी, जो कि संख्या 65856 है। दूसरा एक स्ट्रिंग को दो 2-बाइट पूर्णांक (320 और 1) के रूप में व्याख्या करता है।


उत्तर № 2 के लिए 1

आपके पास बाइट्स की एक स्ट्रिंग है, यदि आप इसे प्रिंट करते हैं तो आप एससीआई आउटपुट देख रहे हैं:

In [5]: s = "@x01x01x00"


In [8]: print(list(bytearray(s)))
[64, 1, 1, 0]

अगर आप कॉल करते हैं chr प्रत्येक चींटियों पर आपको बिल्कुल वही आउटपुट दिखाई देगा, जो 64 इंच की है @, 1 एक है तो ज तथा 0 एक है NUL , बिना अधिक जानकारी के जैसे कि यह कहां से आया है, यह सुझाव दिया जा सकता है।