On 2/22/2011 8:46 AM, tee chwee liong wrote:
hi,

>>> bin(0xff0)
'111111110000'
>>> bin(0xff1)
'111111110001'
>>> a=bin(0xff0)+bin(0xff1)
>>> a
'111111110000111111110001'
>>> b=0xff0
>>> c=0xff1
>>> d=b+c
>>> d
8161
>>> bin(d)
'1111111100001'

question:
1) why is it that a and d values are different? i'm using Python 2.5.

Why would you expect otherwise?

What are the types of a and d? They are not the same type; therefore you get different results.

How do you determine the type of an object?
1 - Use the type() function.
2 - notice '' around a and not around d
3 - Read the documentation:
bin(/x/) Convert an integer number to a binary string. The documentation is weak here, but at least it tells you that the result is a string. 0x is covered under (at least for Python 2.6) in 2.4.4. Integer and long integer literals.

--
Bob Gailer
919-636-4239
Chapel Hill NC

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to