# Python program to count unset bits in a range.

Given a positive a number and the range of the bits. Our task is to count unset bits in a range.

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


There are '2' unset bits in the range 2 to 5.

## Algorithm

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.


## Example Code

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


## Output

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