الاتصال عبر MCP →

أدخل الحساب

صيغة رياضية

اعلان

نتائج

A | B (عملية OR الثنائية)
٦
الناتج بالنظام العشري
المعامل A ٤
المعامل B ٢
A | B ٦

ما هي حاسبة OR الثنائية؟

تقوم هذه الحاسبة بحساب عملية OR الثنائية (bitwise OR) لعددين صحيحين، وتُكتب في معظم لغات البرمجة على الصورة a | b. تقارن عملية OR العددين بِتًّا بِتًّا، وتُنتج نتيجة يكون فيها كل بِت مساويًا للقيمة 1 إذا كان أحد البِتَّين المتقابلين (أو كلاهما) يساوي 1، بينما يكون البِت 0 فقط عندما يكون البِتَّان معًا يساويان 0.

طريقة الاستخدام

أدخل العدد الصحيح الأول (A) ثم العدد الصحيح الثاني (B)، واقرأ النتيجة بالنظام العشري. الأداة تدعم الأعداد الصحيحة الموجبة والسالبة على حدٍّ سواء. تعمل الحاسبة بالكامل في الأساس العشري (base 10) في الإدخال والإخراج، لكنها داخليًا تعالج كل قيمة وفق تمثيلها الثنائي (binary).

شرح القاعدة الحسابية

تُنفَّذ العملية لكل بِت على حدة باستخدام جدول الحقيقة الخاص بـ OR:

$$\text{Result} = \text{A} \mathbin{|} \text{B}$$

\(0\mathbin{|}0=0\)، \(0\mathbin{|}1=1\)، \(1\mathbin{|}0=1\)، \(1\mathbin{|}1=1\). على سبيل المثال، لنأخذ A = 12 وB = 10. بالنظام الثنائي يكون 12 = 1100 و10 = 1010. وبمحاذاة العددين وتطبيق OR على كل عمود نحصل على 1110، وهو ما يساوي 14 بالنظام العشري. إذًا \(12 \mathbin{|} 10 = 14\).

Bitwise OR of two binary numbers shown column by column producing a result row
Bitwise OR compares each bit position: the result bit is 1 if either input bit is 1.

مثال محلول

لنفترض أنك تريد حساب \(5 \mathbin{|} 3\). بالنظام الثنائي يكون 5 = 101 و3 = 011. وبتطبيق OR على كل بِت: \(1\mathbin{|}0=1\)، \(0\mathbin{|}1=1\)، \(1\mathbin{|}1=1\)، فنحصل على 111 = 7. وتُرجع الحاسبة الناتج 7.

$$5 \mathbin{|} 3 = 7$$
Truth table grid for the OR operation of two single bits
OR truth table: the output is 0 only when both inputs are 0.

مرجع قيم العملية OR الثنائية الشائعة

الجدول أدناه يعطي \(A \mathbin{|} B\) لكل زوج من المعاملات الصغيرة من 0 إلى 8. اقرأ الصف الخاص بـ A والعمود الخاص بـ B؛ الخلية هي النتيجة العشرية.

| 0 1 2 3 4 5 6 7 8
0 0 1 2 3 4 5 6 7 8
1 1 1 3 3 5 5 7 7 9
2 2 3 2 3 6 7 6 7 10
3 3 3 3 3 7 7 7 7 11
4 4 5 6 7 4 5 6 7 12
5 5 5 7 7 5 5 7 7 13
6 6 7 6 7 6 7 6 7 14
7 7 7 7 7 7 7 7 7 15
8 8 9 10 11 12 13 14 15 8

القطر (حيث A = B) يعود دائماً بالمعامل نفسه، لأن x | x = x.

العملية OR الثنائية هي الطريقة القياسية لدمج رايات الأذونات. بتات الأذونات الشائعة بأسلوب يونكس هي القراءة = 4 (100)، الكتابة = 2 (010)، التنفيذ = 1 (001):

التركيب التعبير عشري ثنائي
قراءة + كتابة 4 | 2 6 110
قراءة + تنفيذ 4 | 1 5 101
كتابة + تنفيذ 2 | 1 3 011
قراءة + كتابة + تنفيذ (rwx) 4 | 2 | 1 7 111
بايتان مدمجان 240 | 15 255 11111111

المصطلحات الرئيسية

بت
أصغر وحدة من البيانات الرقمية، تحمل قيمة ثنائية واحدة إما 0 أو 1. مجموعة من 8 بتات تشكل بايتاً.
بت محدد / غير محدد
البت المحدد له القيمة 1؛ البت غير المحدد (أو الممسوح) له القيمة 0. تُستخدم العملية OR الثنائية عادة لـ تحديد بتات معينة دون التأثير على الأخرى.
قناع البتات
عدد صحيح يتم اختيار نمط بتاته لتحديد أو تعيين أو مسح بتات معينة في قيمة أخرى. دمج قيمة مع قناع باستخدام OR يفرض تعيين كل بت محدد في القناع في النتيجة.
علم
بت فردي (غالباً ما يُعطى ثابت مسمى) يُستخدم لتمثيل إعداد تشغيل/إيقاف. يتم حزم عدة علامات في عدد صحيح واحد ودمجها مع OR، على سبيل المثال READ | WRITE.
تمثيل المتمم الثنائي
الطريقة القياسية التي تمثل بها الحواسيب الأعداد الصحيحة الموقعة. البت الأكثر أهمية يحمل وزناً سالباً، لذا فإن عدد n-بت يتراوح من \(-2^{n-1}\) إلى \(2^{n-1}-1\). على سبيل المثال، يتم تخزين \(-1\) كجميع البتات 1.
البت الأكثر / الأقل أهمية (MSB / LSB)
MSB هو البت الأيسر، الذي يحمل أكبر قيمة موضع (والإشارة في تمثيل المتمم الثنائي)؛ LSB هو البت الأيمن، بقيمة موضع \(2^0 = 1\).
الأساس 10 مقابل الأساس 2
الأساس 10 (عشري) هو نظام الأرقام اليومي الذي يستخدم الأرقام 0-9. الأساس 2 (ثنائي) يستخدم فقط 0 و 1، حيث تساوي كل موضع قوة من اثنين. تعمل العمليات الثنائية على تمثيل الأساس 2، بينما تعرض هذه الآلة الحاسبة النتيجة بالأساس 10.

الأسئلة الشائعة

هل عملية OR الثنائية مماثلة لعملية الجمع؟ لا. عملية OR لا تُجري أي حمل (carry) أبدًا. فالناتج \(1\mathbin{|}1\) يبقى 1، بينما \(1+1\) يُنتج حملًا ويصبح 10 بالنظام الثنائي. ولا يتطابق الناتجان إلا عندما لا يشترك العددان في أي بِت مضبوط على 1.

وماذا عن الأعداد السالبة؟ تُمثَّل الأعداد الصحيحة السالبة بطريقة المتمم الثنائي (two's complement)، لذا فإن تطبيق OR عليها يتبع القواعد نفسها على مستوى البِتات بما فيها بِت الإشارة.

لماذا تُعد عملية OR مفيدة؟ تُستخدم OR عادةً لضبط (تشغيل) بِتات معينة أو لدمج قيم الأعلام (flags)، مثل دمج أقنعة الصلاحيات (permission masks).

آخر تحديث: