Te equivocas porque estás utilizando el mismo método para dos situaciones que no son las mismas.
Haga una breve lectura aquí . Cuando un número es positivo, la representación complementaria de sus dos corresponde a su representación binaria "normal", por lo que cuando desea convertir un número (signo más valor absoluto, cualquier base):
- si es positivo, simplemente convierte su valor absoluto en forma binaria
- si es negativo, puedes hacer el complemento de dos de su valor absoluto en forma binaria
Cuando quiere volver, las cosas son exactamente iguales: puede indicar el signo mirando el primer bit: si es cero, el número es positivo, si es 1 es negativo. Es por eso que el libro le dice que estos son números de 12 bits, sin esa información, habría sido correcto para sus respuestas.
Entonces, para extender los bits que pasan a través de una representación de magnitud de signo:
- si el msb es 1, convierta el número como lo hizo, agregue ceros, vuelva al complemento de dos
- si el msb es 1, convierta el número, es decir, manténgalo tal como está , agregue ceros, vuelva al complemento de dos, es decir, manténgalo como está
Y eso es todo. Como escribe Ignacio, sucede que es suficiente simplemente extender el MSB a la izquierda (puedes probar que partiendo de las fórmulas en wikipedia), pero esa es solo una forma rápida de hacer las cosas y no explica por qué te equivocaste. Guarde sus consejos como una forma de verificar sus cálculos ... Y (en el futuro) como la forma de evitar errores.