Hola, voy directo.
Sé como convertir un número a negativo usando la rápida conversión de C_{N}^{2} (complemento a dos (explicado en wiki) y también utilizando la fórmula 2^n-N.
Pero fallo al querer convertir el mismo número usando complemento a 1 para luego sumar 1 con el objetivo de llegar al mismo resultado que usando la conversión rápida y la fórmula (esto pasa sólo cuando agrego más ceros al numero).
Por ejemplo:
45 (010011), a través de la fórmula de comp a dos es 010011 (-45)
Ahora tenemos un problema, en este ejemplo se trabajo con número de bits a 6, entonces es lo mismo 19 que -45 (en binario), para solucionar esto vamos a agregar más ceros a 45 para que nos de otra representación (está mejor explicado en wiki):
45 expresado en 8 bits:
00010011
Si utilizamos la fórmula llegaremos a 11010011 (-45)
Pero si uso complemento a uno y sumo 1, no llego a lo mismo. ¿Por qué? (complemento a uno es hacer la negación de todos los bits solamente)
C_{N}^{1}(00010011) =
11101100
00000001 +
-----------
11101101 != 11010011, ¿por qué?
¿Será que no se puede usar así el C_{N}^{1}?
Saludos
Sé como convertir un número a negativo usando la rápida conversión de C_{N}^{2} (complemento a dos (explicado en wiki) y también utilizando la fórmula 2^n-N.
Pero fallo al querer convertir el mismo número usando complemento a 1 para luego sumar 1 con el objetivo de llegar al mismo resultado que usando la conversión rápida y la fórmula (esto pasa sólo cuando agrego más ceros al numero).
Por ejemplo:
45 (010011), a través de la fórmula de comp a dos es 010011 (-45)
Ahora tenemos un problema, en este ejemplo se trabajo con número de bits a 6, entonces es lo mismo 19 que -45 (en binario), para solucionar esto vamos a agregar más ceros a 45 para que nos de otra representación (está mejor explicado en wiki):
45 expresado en 8 bits:
00010011
Si utilizamos la fórmula llegaremos a 11010011 (-45)
Pero si uso complemento a uno y sumo 1, no llego a lo mismo. ¿Por qué? (complemento a uno es hacer la negación de todos los bits solamente)
C_{N}^{1}(00010011) =
11101100
00000001 +
-----------
11101101 != 11010011, ¿por qué?
¿Será que no se puede usar así el C_{N}^{1}?
Saludos