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

أدخل الحساب

صيغة رياضية

اعلان

نتائج

XOR على مستوى البِتات (A ^ B)
٦
عشري
A بالنظام الثنائي 1100
B بالنظام الثنائي 1010
XOR بالنظام الثنائي 110
XOR بالنظام الست عشري 0x6

ما هي حاسبة XOR على مستوى البِتات؟

تأخذ حاسبة XOR (أو الحصري - Exclusive OR) عددين صحيحين وتدمجهما بِتًا بِتًا. في كل موضع، تكون نتيجة البِت 1 عندما يختلف البِتان المُدخَلان، و0 عندما يتطابقان. وهي إحدى العمليات الأساسية في البرمجة والمنطق الرقمي والتشفير واكتشاف الأخطاء.

كيفية الاستخدام

أدخِل العدد الصحيح الأول (A) ثم العدد الصحيح الثاني (B)، واضغط على زر الحساب. تعرض الحاسبة ناتج XOR بالنظام العشري، بالإضافة إلى تمثيله بالنظامين الثنائي والست عشري حتى تتمكن من التحقق منه بِتًا بِتًا. وهي تقبل الأعداد الموجبة والسالبة معًا.

شرح الصيغة

تُكتب عملية XOR على هيئة A ^ B في معظم لغات البرمجة، وعلى هيئة \( A \oplus B \) في الرمز الرياضي:

$$\text{Result} = \text{A} \oplus \text{B}$$

وجدول الحقيقة لبِت واحد هو: \(0 \oplus 0 = 0\)، و\(0 \oplus 1 = 1\)، و\(1 \oplus 0 = 1\)، و\(1 \oplus 1 = 0\). وتُطبَّق العملية بشكل مستقل على كل زوج من البِتات. ومن الخصائص المفيدة: A ^ A = 0 وA ^ 0 = A، ولهذا السبب تُستخدم XOR في تبديل القيم وتبديل حالة الأعلام (flags).

جدول الحقيقة لـ XOR يوضح 0 XOR 0 = 0، 0 XOR 1 = 1، 1 XOR 0 = 1، 1 XOR 1 = 0
تنتج بوابة XOR القيمة 1 فقط عندما يختلف بِتّا الإدخال.

مثال محلول

لنأخذ A = 12 وB = 10. بالنظام الثنائي يكون 12 = 1100 و10 = 1010. وبمقارنة كل عمود: \(1 \oplus 1 = 0\)، و\(1 \oplus 0 = 1\)، و\(0 \oplus 1 = 1\)، و\(0 \oplus 0 = 0\)، فنحصل على 0110 = 6. إذًا فإن:

$$12 \oplus 10 = 6$$
عددان ثنائيان مكدّسان مع دمج كل عمود بِت بواسطة XOR لإنتاج صف النتيجة
تُطبَّق XOR بشكل مستقل على كل موضع بِت متحاذٍ.

مقارنة العمليات الثنائية

كل عملية ثنائية تعمل على بت واحد في المرة. لكل زوج من البتات المدخلة \(A\) و \(B\)، تنتج العملية بتاً واحداً في الإخراج. الجدول أدناه يعرض جدول الحقيقة الكامل للبت الواحد لأكثر ست عمليات شيوعاً. XOR (أو الحصري، مكتوب \(A \oplus B\)) ينتج 1 فقط عندما تختلف بتات الإدخال الاثنتان.

A B AND (A&B) OR (A|B) XOR (A^B) NAND ~(A&B) NOR ~(A|B) XNOR ~(A^B)
0 0 0 0 0 1 1 1
0 1 0 1 1 1 0 0
1 0 0 1 1 1 0 0
1 1 1 1 0 0 0 1

لاحظ أن XOR هو المتمم الدقيق لـ XNOR، وأن XOR يساوي 1 في بالضبط الصفين حيث تختلف المدخلات. هذه خاصية "كاشف الفرق" هي التي تجعل XOR مفيداً لفحوصات التكافؤ، التشفير البسيط، وتبديل البتات.

XOR عبر أزواج مدخلات شائعة

الجدول التالي يعالج عدة أزواج تمثيلية من خلال عملية XOR الثنائية، موضحاً كل معامل بالنظام الثنائي، ثم النتيجة بالعشري والثنائي والسادس عشري. يتم إجراء XOR بت تلو بت: صف الرقمين الثنائيين واخراج 1 أينما تختلف البتات.

A B A (ثنائي) B (ثنائي) A ^ B (عشري) A ^ B (ثنائي) A ^ B (سادس عشري)
5 3 0101 0011 6 0110 0x6
255 15 11111111 00001111 240 11110000 0xF0
12 12 1100 1100 0 0000 0x0
7 0 0111 0000 7 0111 0x7
10 6 1010 0110 12 1100 0xC
-1 1 …11111111 …00000001 -2 …11111110 0x…FE

نمطان بارزان. عندما يكون أحد المعاملات 0، XOR يرجع المعامل الآخر دون تغيير (\(7 \oplus 0 = 7\)). عندما يكون كلا المعاملين متطابقين، XOR يرجع 0 (\(12 \oplus 12 = 0\)). المثال السالب يستخدم تمثيل المتمم الثنائي: \(-1\) كل البتات 1، لذلك إجراء XOR معها على أي قيمة يعكس كل بت (وهذا يعادل NOT الثنائي)، مما يعطي \(-1 \oplus 1 = -2\).

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

ماذا تعني XOR؟ هي «أو الحصري» (Exclusive OR) — تكون صحيحة فقط عندما يكون أحد المُدخَلين بالضبط صحيحًا (1).

لماذا تُستخدم XOR في التشفير؟ لأن تطبيق XOR على البيانات باستخدام مفتاح هو عملية قابلة للعكس: فإعادة تطبيق المفتاح نفسه مرة أخرى تستعيد البيانات الأصلية (\(A \oplus K \oplus K = A\)).

هل تتعامل مع الأعداد السالبة؟ نعم. تُمثَّل القيم السالبة باستخدام نظام المتمم الثنائي (two's complement)، لذلك قد يتضمن التمثيل الثنائي للأعداد السالبة عددًا كبيرًا من البِتات.

آخر تحديث: