Difference between signed and unsigned on bitwise operations

bit-manipulation, bitwise-operators, signed, unsigned

Solution

Assuming 2's complement is used for signed numbers, operations that care about signedness (ie they are different for the signed and unsigned interpretation of a bitstring) are:

- division

- modulo

- right shift

- comparisons (except equality)

- double-width multiplication (rare outside of assembly)

Operations for which signedness is irrelevant are:

- addition

- subtraction

- negation (`-x` means `~x + 1`)

- bitwise and

- bitwise or

- bitwise xor

- bitwise not (`~x` means `-x - 1`)

- left shift

- multiplication

- comparison (equality only)

Problem

Is there any difference between signed and unsigned variables on bitwise operations? For example,when dealing with unsigned numbers: `AND 00000111, 00001101` will result 00000101. But what would happen when dealing with signed numbers?

Original source

Related problems