> I think this had best be concluded by saying that a signed right shift > does implement an operation that can be labelled "division", but that > most people would be surprised by the result of (-1)/2 in this case. Where a > particular application can accept rounding towards negative infinity, use > of a right shift for signed division may be a fast solution. You may prefer the round-toward-zero semantics; I for one have NEVER had a situation in which they were desirable, and have frequently had cases where I wished that the identity: ((a mod m)+b) mod m == (a+b) mod m would hold for--most notably--all 0<=a