Check if bits in range L to R of two numbers are complement of each other or not | function to check whether all the bits are set in the given range or not ; calculating a number ' num ' having ' r ' number of bits and bits in the range l to r are the only set bits ; new number which will only have one or more set bits in the range l to r and nowhere else ; if both are equal , then all bits are set in the given range ; else all bits are not set ; function to check whether all the bits in the given range of two numbers are complement of each other ; Driver Code
function allBitsSetInTheGivenRange ( n , l , r ) { var num = ( ( 1 << r ) - 1 ) ^ ( ( 1 << ( l - 1 ) ) - 1 ) ; var new_num = n & num ; if ( num == new_num ) return true ; return false ; } function bitsAreComplement ( a , b , l , r ) { var xor_value = a ^ b ; return allBitsSetInTheGivenRange ( xor_value , l , r ) ; } var a = 10 , b = 5 ; var l = 1 , r = 3 ; if ( bitsAreComplement ( a , b , l , r ) ) document . write ( " " ) ; else document . write ( " " ) ;