عمليات الأعداد الثنائية Bitwise في بايثون

من موسوعة حسوب
< Python
مراجعة 15:04، 29 مايو 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (نقل عبد اللطيف ايمش صفحة Python/bitwise-operations إلى Python/bitwise operations)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

يمكن تنفيذ عمليات الأعداد الثنائية Bitwise على الأعداد الصحيحة فقط، وتعامل الأعداد السالبة معاملة قيمها المكمّلة من الأساس 2 (يُفترض هنا وجود عدد كافٍ من البتات لكي لا يحدث أي فيضان [overflow] أثناء العملية).

تمتلك عمليات الأعداد الثنائية أولوية أدنى من العمليات العددية وأعلى من عمليات المقارنة، ويمتلك العامل الأحادي ~ نفس الأولوية التي تمتلكها العمليات العددية الأحادية (+ و -).

يعرض الجدول التالي قائمة بعمليات الأعداد الثنائية مرتّبة حسب أولويتها ترتيبًا تصاعديًا:

العملية النتيجة ملاحظات
x | y x أو y
x ^ y x أو (غير الضمنية) y
x & y x و y
x << n إزاحة x إلى اليسار بمقدار n بت الإزاحة السالبة غير مسموح بها، وتؤدي إلى إطلاق خطأ من نوع ValueError.

الإزاحة إلى اليسار بمقدار n بت مكافئ للضرب بالمقدار pow(2, n)‎دون التحقق من وجود فيضان (overflow).

x >> n إزاحة x إلى اليمين بمقدار n بت الإزاحة السالبة غير مسموح بها، وتؤدي إلى إطلاق خطأ من نوع ValueError.

الإزاحة إلى اليسار بمقدار n بت مكافئ للقسمة على المقدار pow(2, n)‎دون التحقق من وجود فيضان (overflow).

‎~x قلب بتات x

مصادر