División binaria con números firmados

1

Estoy tomando un curso de ingeniería eléctrica como parte de mi licenciatura en ciencias de la computación y estamos hablando de cómo una computadora realiza cálculos matemáticos solo con la suma. Entiendo esto porque la multiplicación es una serie de adiciones. La resta es como sumar el valor negativo. Para hacer la resta tienes que encontrar el complemento de los dos y luego realizar la suma. Comencé a perderme cuando nos metimos en matemáticas binarias usando números firmados. Creo que entiendo cómo realizar la multiplicación utilizando números con signo. Creo que encuentras el complemento de los dos negativos, multiplicar, sumar, encontrar el complemento de los dos del resultado y agregar el bit de signo en consecuencia. División binaria con números firmados que no entiendo bien.

Por ejemplo,

1111/0101

Estos son números con signo por lo que el equivalente decimal sería -7 / 5. La respuesta sería -1R2. Si lo convierto en números binarios firmados, ¿no sería eso 1001 0010? Entonces, para llegar allí tendría que hacer 111 - 101 = 010. Sin embargo, 11 también podría ser -1, así que, ¿volvería a llenar 1s y obtendría 1111 0010? Otra pregunta es acerca de esa resta: ¿no es necesario cambiar eso a la suma? Si es así, ¿no se convertiría el problema en 111 + 011 (el complemento de dos de 010)?

Cuanto más lo miro, más confundido me pongo. Cualquier ayuda sería apreciada.

    
pregunta AxGryndr

1 respuesta

-1

Una respuesta simple es hacer que ambos números sean positivos (tomar el valor absoluto), realizar la división y luego negar el resultado si el XOR de los dos bits del signo original es 1.

Por ejemplo, dividamos -7 por 5. Usando la codificación binaria de dos bits de complemento a dos bits, es decir 1001 div 0101. Tomando el valor absoluto de cada resultado en 0111 div 0101. La división arroja 0001. Desde la XOR de los dos bits de signo originales son 1, este valor se niega. Negar significa complementar y luego aumentar en 1. El negativo de 0001 es 1111, que es la respuesta final. 1111 en decimal es -1.

    
respondido por el Olin Lathrop

Lea otras preguntas en las etiquetas