Wie konvertiert man von Vorzeichengröße zu Zweierkomplement?

Wie würde ich von Vorzeichengröße zu Zweierkomplement konvertieren? Ich weiß nicht, wo ich anfangen soll. Jede Hilfe wäre dankbar. Ich kann nur die folgenden Operationen verwenden:!, ~, |, &, ^, +, >>, <<.

/*
 * sm2tc - Convert from sign-magnitude to two's complement
 *   where the MSB is the sign bit
 *   Example: sm2tc(0x80000005) = -5.
 *   
 */
int sm2tc(int x) {

return 2;
}

Antworten auf die Frage(5)

Ihre Antwort auf die Frage