Here is my proposed logic for deciding the sign of the result when negative values are used in bitwise operations:

XOR - if the signs are different, the result is negative, otherwise the result is positive

OR - if the both signs are negative, the result is negative, otherwise the result is positive

AND - if the both signs are negative, the result is negative, otherwise the result is positive

NOT - if the sign is positive, the result is negative, otherwise the result is positive

I propose to "give preference" to positive values in the result. This has resulted in a logical inconsistency between AND & OR operators.

Maybe the behaviour of the AND & OR operators, should be "opposite" to each other, as follows...

**either**

OR - if the both signs are negative, the result is negative, otherwise the result is positive

AND - if the both signs are positive, the result is positive, otherwise the result is negative

(a positive sign is considered to a positive "value")

**or**

OR - if the both signs are positive, the result is positive, otherwise the result is negative

AND - if the both signs are negative, the result is negative, otherwise the result is positive

(a negative sign is considered to a positive "value")

Alternative suggestions are welcome.