الفرق بين '\ س 81 ' و 0 س 81
سؤال
أنا جديد على بيثون وأنا أحاول قراءة بعض القيم من جهاز أوسب عبر بيوسب.حسنا ، إنه يعمل الآن لكني واجهت بعض المشاكل:أثناء قراءة البيانات من الجهاز ، بيوسب يحتاج إلى نقطة نهاية لقراءة البيانات من.يتم تحديد نقطة النهاية هذه عبر قيمة سداسية عشرية.إذا قرأت البيانات مثل...
dev.read('\x81', ...)
...أحصل على خطأ " خطأ:كائن "نونيتيب" ليس له سمة "بماتريبوتس".إذا قرأت البيانات مثل...
dev.read(0x81, ...)
...إنه يعمل.
لذا سؤالي البسيط هو:ما هو الفرق بين 081 و '\ 81'?
:-)
المحلول
في بيثون 2.x, '\x81'
هو بايتسترينغ الذي يتكون من بايت واحد مع قيمة 129.يمكنك أيضا الحصول عليه عن طريق الاتصال chr(129)
.
0x81
هو عدد صحيح مكتوب في الأساس 16 ، بقيمة 129.يمكنك أيضا الحصول عليه ببساطة عن طريق الكتابة 129
.
نصائح أخرى
\ x81 يتوافق مع أحرف unicode التي تحتوي على 81 رمز ست عشري ، 0x81 هي قيمة سداسية عشرية صالحة.
الأول عبارة عن سلسلة ذات قيمة سداسية عشرية معينة مقسومة على موضع الحرف الأول ، والثاني عبارة عن عدد صحيح.
من الواضح أن استدعاء واجهة برمجة التطبيقات يتوقع بالتأكيد عددًا صحيحًا.
يرسل
0x81 رقمًا سداسيًا عشريًا يطلبه ، بينما يرسل "x81" سلسلة من الأحرف.هذا هو السبب في أن الثانية تعمل ، أتمنى أن يساعدك هذا وهو في الواقع ما كنت تطلبه :)