~ bit-wise unary operator
Hrvoje Niksic
hniksic at xemacs.org
Wed Sep 26 18:23:59 EDT 2007
Ladislav Andel <ladaan at iptel.org> writes:
> Hello, why ~ bit-wise unary operator returns -(x+1) and not bit
> inversion of the given integer?
On 2s-complement architectures, -(x+1) *is* bit inversion of the given
integer.
> example:
> a = 7978
> a = ~a
> python returns -7979
>
> but I need to get back 57557 as in C language.
Python does exactly what C does in this case.
$ cat a.c
#include <stdio.h>
int main(void)
{
int a = 7978;
a = ~a;
printf("%d\n", a);
return 0;
}
$ gcc a.c
$ ./a.out
-7979
If you want 16-bit unsigned arithmetic, use 2**16 + ~a, which yields
57557.
More information about the Python-list
mailing list