পাইথনে ফ্লোটিং পয়েন্ট সংখ্যা বিট কনভার্ট করুন

আমার কাছে একটি বাইনারি ফাইল রয়েছে যা আমাকে বিশ্লেষণ করতে হবে এবং আমি পাইথন ব্যবহার করছি কি 4 বাইট নিতে এবং এটি একটি একক স্পষ্টতা ভাসমান পয়েন্ট সংখ্যা রূপান্তর একটি উপায় আছে?

0
ro fr hi

2 উত্তর

আপনি struct প্যাকেজটি চাইবেন।

0
যোগ
আপনি একটি জিতে ভোট পেয়ে থাকতে পারে, কিন্তু উদাহরণ কোড যোগ না ...
যোগ লেখক Mayhem, উৎস
একটি বিরাট বিক্ষোভ কোড যোগ করুন এবং আমি upvote করব।
যোগ লেখক John Mulder, উৎস
>>> import struct
>>> struct.pack('f', 3.141592654)
b'\xdb\[email protected]'
>>> struct.unpack('f', b'\xdb\[email protected]')
(3.1415927410125732,)
>>> struct.pack('4f', 1.0, 2.0, 3.0, 4.0)
'\x00\x00\x80?\x00\x00\[email protected]\x00\[email protected]@\x00\x00\[email protected]'
0
যোগ
আমি @ ডিপ্লাসের সাথে একমত, অন্যান্য floats সম্পর্কে কি? এবং, কেন এই স্ট্রিং শেষে একটি কমা আছে?
যোগ লেখক Startec, উৎস
@startec প্রশ্নটি প্রায় 4-বাইট ফ্লাট ছিল। কোন স্ট্রিং একটি কমা সঙ্গে শেষ? শুধুমাত্র struct.unpack থেকে tuple একটি কমা আছে
যোগ লেখক tzot, উৎস
@ পিটার ক্রাম্পল সি <�কোড> ফ্লোট (একক, 4 বাইট) এবং সি <�কোড> দ্বিগুণ (ডবল, 8 বাইট) এর নির্ভুলতা। পাইথন <�কোড> ফ্লোট আসলে সি <�কোড> ডবল । 3.141592654 একটি সি <�কোড> দ্বিগুণ হিসাবে সংরক্ষণের সঠিকতা যাই হোক না কেন, যখন এটি একটি সি <�কোড> ফ্লোট (struct.pack দ্বারা) রূপান্তরিত হয় এবং তারপর ফিরে যায় সি / কোড> দ্বিগুণ (পাইথন 4-বাইটকে একটি সি <�কোড> ফ্লোট হিসাবে ফেলে এবং তারপর ফলাফলটি সি ডবল / পাইথন <�কোড> এ ভাসা)। এটি Python এর সমস্ত প্রয়োগগুলির ক্ষেত্রে প্রযোজ্য যা IEEE754 ফ্লোটিং পয়েন্ট সংখ্যাগুলি ব্যবহ
যোগ লেখক tzot, উৎস
দ্রষ্টব্য: বাইটায়ারের পৃথক বাইটগুলি দেখতে (b দ্বারা নির্দেশিত), তালিকা() ব্যবহার করুন। Ex: তালিকা (struct.pack ('f', 3.141592654)) ব্যক্তিগত বাইটের একটি তালিকা হিসাবে [219, 15, 73, 64] ফেরত পাঠায়। এটা খুব সহজ।
যোগ লেখক Gabriel Staples, উৎস
এটি শুধুমাত্র 4 বা 8 বাইট ফ্লোটের জন্য কাজ করে। 10-বাইট ভাসমান কি?
যোগ লেখক dplass, উৎস
আমি অন্যত্র একটি রেফারেন্স পাওয়া, ধন্যবাদ।
যোগ লেখক dplass, উৎস
ঠিক আছে, এবং দুই নম্বর তুলনায় কি? <�কোড >>>> আমদানি কাঠামো </কোড> <�কোড >>>> = 3.141592654 <�কোড >>> মুদ্রণ </কোড> 3.141592654 >> > a_packed = struct.pack ('f', a) >> b = struct.unpack ('f', a_packed) [0] >>> print b 3.14159274101 >>> কোনও == বি, "অ নং বি" ট্র্যাকব্যাক (সবচেয়ে সাম্প্রতিক কল শেষ): `ফাইল "", লাইন 1, ` অ্যাসেরমেন্ট এন্টার করুন: একটি অ + বি কোড
যোগ লেখক Petr Krampl, উৎস