Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन काउंट बिट्स को एक सीमा में सेट करता है?

बाइनरी में परिवर्तित होने पर दी गई सकारात्मक संख्या में कई सेटबिट होते हैं। बाइनरी नंबर में सेट बिट्स को 1 द्वारा दर्शाया जाता है। इस लेख में हम देखेंगे कि बाइनरी वैल्यू में परिवर्तित होने के बाद किसी दिए गए नंबर में सेटबिट्स की संख्या कैसे प्राप्त करें।

बिन और स्लाइसिंग का उपयोग करना

नीचे दिए गए उदाहरण में हम एक संख्या लेते हैं और बाइनरी मान प्राप्त करने के लिए बिन फ़ंक्शन लागू करते हैं। फिर हम बाइनरी नंबर में जोड़े गए उपसर्गों को हटाने के लिए इसे स्लाइस करते हैं और फिर सेटबिट्स का कोटन प्राप्त करने के लिए रेंज फ़ंक्शन लागू करते हैं।

उदाहरण

def SetBits_cnt(n, l, r):
   bin_val = bin(n)

   # Remove '0b' prefixed in bin_val conversion
   bin_val = bin_val[2:]
   print(bin_val)
   # reverse string
   bin_val = bin_val[-1::-1]

   # count all set bit '1' starting from index l-1
   print(len([bin_val[i] for i in range(l - 1, r) if bin_val[i] == '1']))

SetBits_cnt(83,1,6)

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

1010011
3

बिटवाइज का उपयोग करना

बिटवाइज़ ऑपरेटर का उपयोग सेटबिट प्राप्त करने के लिए भी किया जा सकता है। नीचे दिए गए उदाहरण में हम पहले बिटवाइज़ ऑपरेटर को रेंज को ध्यान में रखते हुए लागू करते हैं और फिर इसे दूसरे फ़ंक्शन पर पास करते हैं जो केवल सेट बिट्स की गणना करता है।

उदाहरण

def trackBitsInRange(n, l, r):
   # using bitwise operator
   bit_num = ((1 << r) - 1) ^ ((1 << (l - 1)) - 1)
   # After bitwise operation count the set bits
   return trackSetBits(n & bit_num)

def trackSetBits(n):
   count = 0
   while (n):
      n &= (n - 1)
      count = count + 1
   return count

print(trackBitsInRange(83,1,6))

आउटपुट

उपरोक्त कोड को चलाने से हमें निम्नलिखित परिणाम मिलते हैं -

3

  1. 1 से n तक सभी संख्याओं में कुल सेट बिट्स को गिनने के लिए पायथन प्रोग्राम।

    एक सकारात्मक पूर्णांक n को देखते हुए, हम इसके द्विआधारी प्रतिनिधित्व में बदल जाते हैं और सेट बिट्स की कुल संख्या की गणना करते हैं। उदाहरण Input : n=3 Output : 4 एल्गोरिदम Step 1: Input a positive integer data. Step 2: then convert it to binary form. Step 3: initialize the variable s = 0. Step 4: tra

  1. एक श्रेणी में अनसेट बिट्स को गिनने के लिए पायथन प्रोग्राम।

    एक सकारात्मक संख्या और बिट्स की सीमा को देखते हुए। हमारा काम अनसेट बिट्स को एक रेंज में गिनना है। Input : n = 50, starting address = 2, ending address = 5 Output : 2 2 से 5 की सीमा में 2 अनसेट बिट्स हैं। एल्गोरिदम Step 1 : convert n into its binary using bin(). Step 2 : remove first two characte

  1. एक संख्या में कुल बिट्स गिनने के लिए एक पायथन प्रोग्राम लिखें?

    पहले हम एक नंबर इनपुट करते हैं फिर इस नंबर को बिन () फ़ंक्शन का उपयोग करके बाइनरी में परिवर्तित करते हैं और फिर आउटपुट स्ट्रिंग के पहले दो अक्षर 0b को हटाते हैं, फिर बाइनरी स्ट्रिंग की लंबाई की गणना करते हैं। उदाहरण Input:200 Output:8 स्पष्टीकरण Binary representation of 200 is 10010000 एल्गोरिद