I found an interesting piece of text
Signed and Unsigned Variables
Integer formatted variables, such as int, char, short and longmay be declared signed or unsigned variables in the C source code. There are two differences in how these variables are treated:
- Signed variables use signed instructions such as add, and sub. Unsigned variables use unsigned arithmetic instructions such as addi, and subi.
- Signed variables use signed branch instructions such asjge and jl. Unsigned variables use unsigned branch instructions such as jae, and jb.
The difference between signed and unsigned instructions is the conditions under which the various flags for greater-then or less-then (overflow flags) are set. The integer result values are exactly the same for both signed and unsigned data.
(this is from http://en.wikibooks.org/wiki/X86_Disassembly/Variables )
Myself was never conscious of binary difference results of working on signed instead of unsigned and vice versa
Does it mean that all binary stays the same (if you switch s. to u. or u. to s.)the only difference will be in some branching (comparisons?) (or some other results can also change, which one?)