Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में दो की घात (Power of Two) जांचना


समस्या विवरण

मान लीजिए हमारे पास एक संख्या n है। हमें जांचना है कि क्या यह संख्या 2 की घात है या नहीं। उदाहरण: यदि n = 16, तो आउटपुट true होगा; यदि n = 12, तो false।

तर्क

हम लॉजिकल ऑपरेशन्स का उपयोग करेंगे। जो संख्याएँ 2 की घात होती हैं, उनके बाइनरी प्रतिनिधित्व में सबसे महत्वपूर्ण बिट (MSB) 1 होती है और शेष सभी बिट्स 0 होती हैं। इसलिए यदि हम [n AND (n – 1)] करें, तो यह 0 लौटाएगा यदि n 2 की घात है।

उदाहरण: n = 16 = 10000 (बाइनरी), (n – 1) = 15 = 01111 (बाइनरी), तब 10000 AND 01111 = 00000 = 0।

उदाहरण (C)

#include <stdio.h>
#include <stdbool.h>

bool isPowerOfTwo(int n) {
    return (n > 0 && !(n & (n - 1)));
}

int main() {
    printf("%s\n", isPowerOfTwo(16) ? "true" : "false");
    printf("%s\n", isPowerOfTwo(12) ? "true" : "false");
    printf("%s\n", isPowerOfTwo(1) ? "true" : "false");
    printf("%s\n", isPowerOfTwo(32) ? "true" : "false");
    return 0;
}

इनपुट

16 12 1 32

आउटपुट

true false true true
  1. विंडोज पर बिजली बचाना विंडोज पर बिजली बचाना

    कठिन समय कठिन निर्णयों की मांग करता है, और आप शायद घर के आसपास बिजली की खपत कम करने के तरीकों की तलाश कर रहे हैं। क्या आपने कभी अपने डेस्कटॉप PC को देखा है? सही कॉन्फिगरेशन के साथ, आप अपने कंप्यूटर की बिजली उपयोग को 60% तक कम कर सकते हैं। यह देखते हुए कि औसत कंप्यूटर प्रति घंटे 250 वाट तक उपयोग कर स

  1. C प्रोग्राम में 3D में दो तल के बीच का कोण C प्रोग्राम में 3D में दो तल के बीच का कोण

    समस्या विवरण यहां हम त्रि-आयामी स्थान में दो तल के बीच का कोण गणना करना देखेंगे। तल P1 और P2 हैं। Pi के समीकरण इस प्रकार हैं: a₁x + b₁y + c₁z + d₁ = 0 a₂x + b₂y + c₂z + d₂ = 0 सूत्र यदि कोण A है, तो: cos A = |a₁a₂ + b₁b₂ + c₁c₂| / (√(a₁²+b₁²+c₁²) * √(a₂²+b₂²+c₂²)) C++ प्रोग्राम उदाहरण d = d;

  1. पायथन प्रोग्राम: जांचें कि कोई संख्या दो की घात है या नहीं पायथन प्रोग्राम: जांचें कि कोई संख्या दो की घात है या नहीं

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट एक संख्या n दिए जाने पर, हमें जांचना होगा कि दी गई संख्या दो की घात है या नहीं। दृष्टिकोण इनपुट नंबर को दो से विभाजित करते रहें, यानी n/2 इटरेटिवली। प्रत्येक इटरेशन में जांचें, यदि