[Tutor] Defining "bit" type -- why not '!' ?

spir denis.spir at free.fr
Thu Jan 29 10:19:57 CET 2009


Le Tue, 27 Jan 2009 11:26:06 -0200,
Ricardo Aráoz <ricaraoz at gmail.com> a écrit :

> 
> > "Vicent" <vginer at 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 	

Why not '!' for not, instead of '~'? I mean, '!' is used in logic, in many languages and even in python (!=). On the other hand, I had never encountered '~' meaning not.
Denis

------
la vida e estranya


More information about the Tutor mailing list