strange math?
Ron Adam
rrr at ronadam.com
Sun Mar 19 00:53:11 EST 2006
joe.hrbek at gmail.com wrote:
>>>> f(01)
> 43
>>>> f(02)
> 44
>>>> f(010)
> 50
>>>> 42+010
> 50
>
> The first f(01) was a mistake. I accidentally forgot to delete the
> zero, but to my suprise, it yielded the result I expected. So, I tried
> it again, and viola, the right answer. So, I decided to really try and
> throw it for a loop, f(010), and it produced 50. I expected 52
> (42+10). Why doesn't python ignore the first zero and produce a result
> of 52? It ignored the first zero for f(01) and f(02). Hmm. I know, I
> know, why am I sending it a 01,02, or a 010 to begin with? Like I
> said, it was an accident, but now i'm curious. I'm not a computer
> science major so please be kind with any explanations.
Number beginning with the digit '0' are octal (base 8), so 010 == 8.
42 + 8 = 50.
Numbers beginning with '0x' are base 16.
Cheers,
Ron
More information about the Python-list
mailing list