Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình Python để đếm các bit chưa được đặt trong một phạm vi.

Cho một số dương và phạm vi của các bit. Nhiệm vụ của chúng tôi là đếm các bit chưa được đặt trong một phạm vi.

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

Có các bit chưa được đặt '2' trong phạm vi từ 2 đến 5.

Thuật toán

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.

Mã mẫu

# 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) 

Đầu ra

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