Binary Decimals in Python
kgo at grant-olson.net
Tue Mar 30 17:51:49 CEST 2010
Well the problem is that int's are integers. So yeah, you can't even do
that with normal value "int ('2.1')" will also throw an error. And
floats don't support radix conversion, because no-one really writes
numbers that way. (At least computer programmers...)
On 3/30/2010 11:43 AM, Shashwat Anand wrote:
> The conversion is not supported for decimal integers AFAIK, however
> '0b123.456' is always valid. I guess you can always get a decimal number
> convertor onto Python-recipes
> On Tue, Mar 30, 2010 at 9:05 PM, Grant Olson <kgo at grant-olson.net
> <mailto:kgo at grant-olson.net>> wrote:
> 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