hey everyone. i had this question going in my mind about negative numbers and how they are stored in memory.i have read that in order to obtain the negative of a number , the 2's compliment is taken and added a 1 to it.

for example if we have a variable char that has number 1 in it.
=> 0001

to get -1 => 1110 (2's..) =>add 1=> 1111

But how is it possible know that 1111 is not a 15 and it is -1 ...

As for my 2nd question .. if a type conversion should occur from a char to an int during some operation it would b machine dependent to make the char an unsigned int (by adding zeros at the back) or by making it signed. My question is , how will it be signed i mean what operation would it undergo to achieve it.

Thank you.