Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม Python นับ unset bits ในช่วง


กำหนดจำนวนบวกและช่วงของบิต งานของเราคือนับบิตที่ไม่ได้ตั้งค่าในช่วง

Input : n = 50, starting address = 2, ending address = 5
Output : 2

มีบิตที่ไม่ได้ตั้งค่า '2' ในช่วง 2 ถึง 5

อัลกอริทึม

Step 1 : convert n into its binary using bin().
Step 2 : remove first two characters.
Step 3 : reverse string.
Step 4 : count all unset bit '0' starting from index l-1 to r, where r is exclusive.

โค้ดตัวอย่าง

# Function to count unset bits in a range 
  
def countunsetbits(n,st,ed): 
   # convert n into it's binary 
   bi = bin(n) 
   # remove first two characters 
   bi = bi[2:] 
   # reverse string 
   bi = bi[-1::-1] 
   # count all unset bit '0' starting from index l-1 
   # to r, where r is exclusive 
   print (len([bi[i] for i in range(st-1,ed) if bi[i]=='0'])) 
  
# Driver program 
if __name__ == "__main__": 
   n=int(input("Enter The Positive Number ::>"))
   st=int(input("Enter Starting Position"))
   ed=int(input("Enter Ending Position"))
   countunsetbits(n,st,ed) 

ผลลัพธ์

Enter The Positive Number ::> 50
Enter Starting Position2
Enter Ending Position5
2