سؤال

أنا جديد على بيثون وأنا أحاول قراءة بعض القيم من جهاز أوسب عبر بيوسب.حسنا ، إنه يعمل الآن لكني واجهت بعض المشاكل:أثناء قراءة البيانات من الجهاز ، بيوسب يحتاج إلى نقطة نهاية لقراءة البيانات من.يتم تحديد نقطة النهاية هذه عبر قيمة سداسية عشرية.إذا قرأت البيانات مثل...

dev.read('\x81', ...)

...أحصل على خطأ " خطأ:كائن "نونيتيب" ليس له سمة "بماتريبوتس".إذا قرأت البيانات مثل...

dev.read(0x81, ...)

...إنه يعمل.

لذا سؤالي البسيط هو:ما هو الفرق بين 081 و '\ 81'?

:-)

هل كانت مفيدة؟

المحلول

في بيثون 2.x, '\x81' هو بايتسترينغ الذي يتكون من بايت واحد مع قيمة 129.يمكنك أيضا الحصول عليه عن طريق الاتصال chr(129).

0x81 هو عدد صحيح مكتوب في الأساس 16 ، بقيمة 129.يمكنك أيضا الحصول عليه ببساطة عن طريق الكتابة 129.

نصائح أخرى

\ x81 يتوافق مع أحرف unicode التي تحتوي على 81 رمز ست عشري ، 0x81 هي قيمة سداسية عشرية صالحة.

الأول عبارة عن سلسلة ذات قيمة سداسية عشرية معينة مقسومة على موضع الحرف الأول ، والثاني عبارة عن عدد صحيح.

من الواضح أن استدعاء واجهة برمجة التطبيقات يتوقع بالتأكيد عددًا صحيحًا.

يرسل

0x81 رقمًا سداسيًا عشريًا يطلبه ، بينما يرسل "x81" سلسلة من الأحرف.هذا هو السبب في أن الثانية تعمل ، أتمنى أن يساعدك هذا وهو في الواقع ما كنت تطلبه :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top