AND وOR وXOR والإزاحات
قراءة البتات ودمجها بثقة
AND وOR وXOR والإزاحات درس مجاني في Competitive Programming Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Competitive Programming Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.
البتات هي أدواتك
كل عدد صحيح هو في الحقيقة سلسلة من البتات، مكوّنة من 0 و1 فقط. يمنحك تعلم قراءتها ودمجها حيلًا سريعة وذكية في المسابقات. 🔧
اعرض التمثيل الثنائي
استخدم bin() لإلقاء نظرة على بتات أي عدد في Python. تشير البادئة 0b فقط إلى أن العدد ثنائي، أما الباقي فهو نمط البتات.
print(bin(13)) # 0b1101يحافظ AND على البتات المشتركة
يعطي عامل AND (&) القيمة 1 فقط عندما يكون كلا العددين محتويًا على 1 في الموضع نفسه. وهو مثالي لفحص البتات المشتركة أو تطبيق قناع عليها.
print(6 & 3) # 0b110 & 0b011 = 0b010 = 2يدمج OR البتات
يعطي عامل OR (|) القيمة 1 في كل موضع يحتوي فيه أي من العددين على 1. استخدمه لتفعيل الرايات من دون التأثير في بقية البتات.
print(6 | 1) # 0b110 | 0b001 = 0b111 = 7يكشف XOR الاختلافات
يعطي عامل XOR (^) القيمة 1 عندما يختلف البتان. وهو مفضّل في المسابقات للتبديل والعثور على العنصر المختلف.
print(6 ^ 3) # 0b110 ^ 0b011 = 0b101 = 5يلغي XOR نفسه
يكون XOR العدد بنفسه مساويًا دائمًا لـ 0، كما أن XOR العدد مع 0 يتركه دون تغيير. وتشكّل خاصية الإلغاء الذاتي هذه أساس العديد من مسائل XOR.
print(7 ^ 7) # 0
print(7 ^ 0) # 7اعثر على العدد الفريد
إذا ظهر كل عنصر مرتين باستثناء عنصر واحد، فطبّق XOR عليها جميعًا، وستختفي الأزواج. وما يبقى هو القيمة الفريدة.
ans = 0
for x in [4, 1, 2, 1, 2]:
ans ^= x
print(ans) # 4يضاعف الإزياح إلى اليسار القيمة
يدفع الإزياح إلى اليسار البتات إلى الأعلى، ويضيف أصفارًا إلى اليمين. تضاعف كل إزاحة بمقدار واحد القيمة، كما يحدث عند الضرب في قوة للعدد 2.
print(3 << 2) # 3 * 4 = 12تقسم الإزاحة إلى اليمين القيمة
تسقط الإزاحة إلى اليمين البتات من الطرف الأيمن. تنصّف كل إزاحة بمقدار واحد القيمة، فتجري قسمة صحيحة على قوة للعدد 2.
print(20 >> 2) # 20 // 4 = 5أنشئ قوة للعدد 2
يؤدي إزياح 1 إلى اليسار بمقدار k إلى إنشاء القيمة 2 مرفوعة للقوة k فورًا. وهذه أنظف طريقة لإنشاء أقنعة ذات بت واحد.
print(1 << 5) # 32السرعة مهمة في المسابقات
تعمل العوامل البتية في خطوة واحدة سريعة، لذا قد يؤدي استبدال العمليات الحسابية بـ الإزاحات إلى تجاوز حد زمني حرج. أتقنها تمامًا. ⚡
تحقق سريع
حان وقت اختبار عوامل البتات لديك.
مراجعة: عوامل البتات
تعرفت إلى AND, OR, XOR والإزاحات: ادمج البتات وبدّلها وغيّر حجمها في خطوة واحدة سريعة. هذه هي اللبنات الأساسية لكل حيلة بتية ستأتي. 🎉
الأسئلة الشائعة
هل درس «AND وOR وXOR والإزاحات» مجاني؟
نعم — نص درس «AND وOR وXOR والإزاحات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Competitive Programming Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Competitive Programming Academy 4 دروس في المجموع.
ماذا ستتعلم في «AND وOR وXOR والإزاحات»؟
قراءة البتات ودمجها بثقة تتمرن على Competitive Programming Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Competitive Programming Academy؟
لا تُشترط خبرة سابقة. Competitive Programming Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «AND وOR وXOR والإزاحات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Competitive Programming Academy هذا؟
نعم. كل درس في Competitive Programming Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- AND وOR وXOR والإزاحات
- تعيين البت ومسحه وتبديله
- عدّ البتات وأدنى بت معيّن
- أقنعة البتات كمجموعات صغيرة