Find the position of rightmost set bit of decimal in ruby

Ruby program for Find the position of rightmost set bit of decimal. Here more information.

#  Ruby Program for
#  Find position of rightmost set bit
class BitPosition 
	#  Finding the right most active bit position
	def rightmostActiveBit(n) 
		if (n <= 0) 
			return
		end

		#    Example 
		#    ———————
		#    n    = 320
		#    n    = (00101000000)   Binary
		#    -n   = (11011000000)   (2s)
		#    Calculate log2 
		#    ——————————————
		#    Formula : log(n & -n) / log(2) + 1
		#    -----------------------------------
		#    log(320 & -320) / log(2) + 1)
		#    Here : log(320 & -320) = log(64) = 4.158883
		#           log(2)  = 0.693147    
		#    (4.158883 / 0.693147) + 1 = (7) position
		#    ————————————————————————————————————————
		#  Calculate rightmost active bits
		result = (Math.log(n & -n) / Math.log(2) + 1).to_i
		print(" Number : ", n ," Result : ", result, "\n")
	end

end

def main() 
	task = BitPosition.new()
	#  Test Cases
	#  320 = Binary(101000000)
	task.rightmostActiveBit(320)
	#  (1000) = Binary(1111101000)
	task.rightmostActiveBit(1000)
	#  (153) = Binary(10011001)
	task.rightmostActiveBit(153)
	#  (354) = Binary(101100010)
	task.rightmostActiveBit(354)
	#  160 = Binary(10100000)
	task.rightmostActiveBit(160)
end

main()

Output

 Number : 320 Result : 7
 Number : 1000 Result : 4
 Number : 153 Result : 1
 Number : 354 Result : 2
 Number : 160 Result : 6


Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.

New Comment







© 2021, kalkicode.com, All rights reserved