Avatar ·

كيفية التحقق مما إذا كان الرقم هو قوة للرقم 2 في C#؟

مرحباً بالجميع! أنا مبتدئ في C# وواجهت مهمة: أحتاج إلى كتابة دالة تتحقق مما إذا كان العدد الصحيح هو قوة للرقم 2 (1، 2، 4، 8، 16، 32، إلخ). يبدو أن المهمة بسيطة، لكنني لا أستطيع إيجاد حل أنيق. لقد كتبت هذا الكود حتى الآن: ```csharp public static bool IsPowerOfTwo(int n) { if (n <= 0) return false; while (n > 1) { if (n % 2 != 0) return false; n = n / 2; } return true; } ``` يبدو أنه يعمل، لكني أشعر أنه معقد جداً وغير فعال. سمعت أن هناك طريقة ذكية باستخدام bitwise operations، لكنني لا أفهم كيف تعمل. هل يمكنكم اقتراح حل أفضل وأسرع؟ أنا مهتم بشكل خاص بـ: 1. كيفية إجراء التحقق بدون حلقات تكرار؟ 2. ما هي bitwise operations وكيف