How can I get first n bits of floating point number as integer in python
Suppose I have 0.625 as a floating point is 0b.101 , so if I want the first two bits of that as an integer i.e. 0b10 = 2 , how can I achieve this in python? I've tried taking the number to a power of 2 and casting to an int, so if I want n bits I do int(0.625*(2**n)) . But that is not working for me. The problem occurs when I have a number greater than 1 so 24.548838022726972 will give me 392 rather than 12 for the first four bits. ( 24.548838022726972 = 0b11000.100011001... ) If you want the n most significant bits, one way to start is to use math.frexp to normalise your number to lie in the