الفرق بين المراجعتين ل"Python/bitwise operations"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
ط
ط (نقل عبد اللطيف ايمش صفحة Python/bitwise-operations إلى Python/bitwise operations)
 
(مراجعتان متوسطتان بواسطة مستخدمين اثنين آخرين غير معروضتين)
سطر 2: سطر 2:
 
يمكن تنفيذ عمليات الأعداد الثنائية Bitwise على [[Python/int|الأعداد الصحيحة]] فقط، وتعامل الأعداد السالبة معاملة قيمها المكمّلة من الأساس 2 (يُفترض هنا وجود عدد كافٍ من البتات لكي لا يحدث أي فيضان [overflow] أثناء العملية).
 
يمكن تنفيذ عمليات الأعداد الثنائية Bitwise على [[Python/int|الأعداد الصحيحة]] فقط، وتعامل الأعداد السالبة معاملة قيمها المكمّلة من الأساس 2 (يُفترض هنا وجود عدد كافٍ من البتات لكي لا يحدث أي فيضان [overflow] أثناء العملية).
  
تمتلك عمليات الأعداد الثنائية أولوية أدنى من [[Python/numeric-operations|العمليات العددية]] وأعلى من [[Python/comparisons|عمليات المقارنة]]، ويمتلك العامل الأحادي <code>~</code> نفس الأولوية التي تمتلكها العمليات العددية الأحادية (<code>+</code> و <code>-</code>).
+
تمتلك عمليات الأعداد الثنائية أولوية أدنى من [[Python/numeric_operations|العمليات العددية]] وأعلى من [[Python/comparisons|عمليات المقارنة]]، ويمتلك العامل الأحادي <code>~</code> نفس الأولوية التي تمتلكها العمليات العددية الأحادية (<code>+</code> و <code>-</code>).
  
 
يعرض الجدول التالي قائمة بعمليات الأعداد الثنائية مرتّبة حسب أولويتها ترتيبًا تصاعديًا:
 
يعرض الجدول التالي قائمة بعمليات الأعداد الثنائية مرتّبة حسب أولويتها ترتيبًا تصاعديًا:
سطر 23: سطر 23:
 
|-
 
|-
 
|<code>x << n</code>
 
|<code>x << n</code>
|إزاحة x إلى اليسار بمقدار n بت
+
|إزاحة <code>x</code> إلى اليسار بمقدار <code>n</code> بت
 
|الإزاحة السالبة غير مسموح بها، وتؤدي إلى إطلاق خطأ من نوع <code>ValueError</code>.
 
|الإزاحة السالبة غير مسموح بها، وتؤدي إلى إطلاق خطأ من نوع <code>ValueError</code>.
 
الإزاحة إلى اليسار بمقدار <code>n</code> بت مكافئ للضرب بالمقدار <code>pow(2, n)‎</code>دون التحقق من وجود فيضان (overflow).
 
الإزاحة إلى اليسار بمقدار <code>n</code> بت مكافئ للضرب بالمقدار <code>pow(2, n)‎</code>دون التحقق من وجود فيضان (overflow).
 
|-
 
|-
 
|<code>x >> n</code>
 
|<code>x >> n</code>
|إزاحة x إلى اليمين بمقدار n بت
+
|إزاحة <code>x</code> إلى اليمين بمقدار <code>n</code> بت
 
|الإزاحة السالبة غير مسموح بها، وتؤدي إلى إطلاق خطأ من نوع <code>ValueError</code>.
 
|الإزاحة السالبة غير مسموح بها، وتؤدي إلى إطلاق خطأ من نوع <code>ValueError</code>.
 
الإزاحة إلى اليسار بمقدار <code>n</code> بت مكافئ للقسمة على المقدار <code>pow(2, n)‎</code>دون التحقق من وجود فيضان (overflow).
 
الإزاحة إلى اليسار بمقدار <code>n</code> بت مكافئ للقسمة على المقدار <code>pow(2, n)‎</code>دون التحقق من وجود فيضان (overflow).
 
|-
 
|-
 
|<code>‎~x</code>
 
|<code>‎~x</code>
|قلب بتات x
+
|قلب بتات <code>x</code>
 
|
 
|
 
|}
 
|}

المراجعة الحالية بتاريخ 15:04، 29 مايو 2018

يمكن تنفيذ عمليات الأعداد الثنائية 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

مصادر