ملخص Binary للمقابلات البرمجية
مقدمة
معرفة نظام الأعداد الثنائية ومعالجة البتات أقل أهمية في مقابلات البرمجة، إذ لا يضطر معظم مهندسي البرمجيات إلى التعامل مع البتات، وهي أكثر شيوعاً عند التعامل مع الأنظمة ولغات البرمجة منخفضة المستوى. ومع ذلك، تُطرح هذه الأسئلة أحياناً، لذا ينبغي أن تعرف على الأقل كيفية تحويل عدد من الصيغة العشرية إلى الصيغة الثنائية (والعكس) بلغة البرمجة التي تختارها.
مصادر التعلم
- قراءات
- Bits, Bytes, Building With Binary، basecs
- Bitwise operation، Wikipedia
- فيديوهات
- Algorithms: Bit Manipulation، HackerRank
- تدريب
الحالات الحدّية
- انتبه إلى الطفح والطفح السفلي وتحقق منهما
- الأعداد السالبة
تقنيات
تُطرح أحياناً أسئلة تتضمن التمثيلات الثنائية والعمليات الثنائية، ويجب أن تكون على دراية تامة بكيفية تحويل عدد من الصيغة العشرية إلى الصيغة الثنائية (والعكس) بلغة البرمجة التي تختارها.
بعض المقتطفات المساعدة المفيدة:
| التقنية | الشيفرة |
|---|---|
| اختبار أن البت رقم k مضبوط | num & (1 << k) != 0 |
| ضبط البت رقم k | num |= (1 << k) |
| إطفاء البت رقم k | num &= ~(1 << k) |
| قلب البت رقم k | num ^= (1 << k) |
| الضرب في 2k | num << k |
| القسمة على 2k | num >> k |
| التحقق مما إذا كان العدد قوة للعدد 2 | (num & num - 1) == 0 أو (num & (-num)) == num |
| تبديل متغيرين | num1 ^= num2; num2 ^= num1; num1 ^= num2 |
أسئلة أساسية
هذه أسئلة أساسية للتدريب عليها إذا كنت تدرس هذا الموضوع.
أسئلة تدريب موصى بها
هذه أسئلة موصى بالتدريب عليها بعد أن تدرس الموضوع وتتدرب على الأسئلة الأساسية.
المصدر والرخصة
هذه الصفحة منسوخة من Tech Interview Handbook للمؤلف يانغشون تاي (Yangshun Tay)، النسخة المرجعية e1d28e8، وتُستخدم بموجب رخصة MIT — حقوق النشر (c) 2017-Present ليانغشون تاي. نص الرخصة محفوظ محلياً في /licenses/tech-interview-handbook.txt.
