Ian D wrote: > Can anyone clarify please? > > > Just reading this: > https://wiki.python.org/moin/BitwiseOperators
> The section on 2's complement binary for negative integers. > It states: > "Thus the number -5 is treated by bitwise operators as if it were written > "...1111111111111111111011". " > > > I am wondering why would this not be -4? > > > I though -5 would be written ..1111111111111010 > > > 5 being 101b This may be easier to understand if you forget about the infinite number of leading ones. Let's have a look at 4-bit integers: binary unsigned --------------- 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 10 1011 11 1100 12 1101 13 1110 14 1111 15 If you add 5 + 11 you get 0101 1011 ----- 10000 but that doesn't fit into the 4 bits. Clip off the highest bit and you get 5 + 11 == 0 or 11 == -5 Following that logic we can relabel the 4-bit ints with a leading 1-bit: binary signed --------------- 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 -8 1001 -7 1010 -6 1011 -5 1100 -4 1101 -3 1110 -2 1111 -1 _______________________________________________ Tutor maillist - [email protected] To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
