Binary Decimals in Python

Grant Olson kgo at grant-olson.net
Tue Mar 30 17:35:21 CEST 2010


On 3/30/2010 11:13 AM, aditya wrote:
> To get the decimal representation of a binary number, I can just do
> this:
> 
> int('11',2) # returns 3
> 
> But decimal binary numbers throw a ValueError:
> 
> int('1.1',2) # should return 1.5, throws error instead.
> 
> Is this by design? It seems to me that this is not the correct
> behavior.
> 

Well technically that would be a 'radix point', not a decimal point.

But I think the problem is that computers don't store fractional values
that way internally.  They either use floating or fixed point math.  You
would never look at raw binary data on a computer and see something like
'1010.1010', and no one would write it that way, and no language (that I
know of) would accept that as a valid value if you did something like "x
= 0b1010.1010"

So in that sense, it might not be an intentional oversight, but it's not
a very practical or useful feature.



More information about the Python-list mailing list