C# में यह कैसे जाँचें कि कोई संख्या दो की घात है या नहीं?
सभी को नमस्ते! मैं C# में नौसिखिया हूँ और मुझे एक कार्य का सामना करना पड़ा: एक ऐसा method लिखना है जो जाँचता है कि कोई पूर्णांक संख्या दो की घात है या नहीं (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. बिना loops के जाँच कैसे करें?
2. bitwise operations क्या हैं और वे कैसे काम करते हैं?