Zuerst einmal hast du in c
verschiedene Integer-Typen:
unsigned char Werte: 0 bis 255, Länge 1 Byte
signed char Werte -128 bis +127, Länge 1Byte
unsigned short Werte 0 bs 65535, Länge 2 Byte
signed short Werte -32768 bis 32767 Länge 2 Byte
unsiged int Werte 0 bis 4294967295 Länge 2 bis 4 Byte implementationsbedingt
signed int Werte -2147483648 bis 2147483647 Länge wie oben
Dann die long-typen, bitte selber googeln
Die Umwandlung von unsigned zu signed Typen erfolgt in zwei Schritten. zuerst einmal muss die darzustellende Zahl 1253
binär 00000100 11100101(unsigned short) in ein Einskomplement umgewandelt werden. Dazu werden die Bitfolgen negiert.
Dann wird zu dem Einskomplement 1 dazu gezählt und du hast deine negative Zahl.
Bei 1253 reicht ein unsigned short mit 2 Byte Länge also 16 Bit