> "Vicent" <vgi...@gmail.com> wrote > >> Anyway, I am working with Python 2.5.4, and I am interested in >> defining a >> new type called "bit" (if possible), which represents a number that >> can only >> take values 0 or 1 —that's what we would call a "binary variable", in a >> Mathematical Programming context. The python manual is usually a good thing to read :
3.4.1 Bit-string Operations on Integer Types Plain and long integer types support additional operations that make sense only for bit-strings. Negative numbers are treated as their 2's complement value (for long integers, this assumes a sufficiently large number of bits that no overflow occurs during the operation). The priorities of the binary bit-wise operations are all lower than the numeric operations and higher than the comparisons; the unary operation "~" has the same priority as the other unary numeric operations ("+" and "-"). This table lists the bit-string operations sorted in ascending priority (operations in the same box have the same priority): Operation Result Notes |x | y| bitwise /or/ of x and y |x ^ y| bitwise /exclusive or/ of x and y |x & y| bitwise /and/ of x and y |x << n| x shifted left by n bits (1), (2) |x >> n| x shifted right by n bits (1), (3) |~x| the bits of x inverted Notes: *(1)* Negative shift counts are illegal and cause a ValueError to be raised. *(2)* A left shift by n bits is equivalent to multiplication by |pow(2, n)| without overflow check. *(3)* A right shift by n bits is equivalent to division by |pow(2, n)| without overflow check.
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor