Sin embargo, usando conversores web para verificarlo, veo que 10111 da 23.Esto creo que es porque he limitado el numero de bits a 5, pero si lo hiciera con 8, el numero 23 quedaría: 00010111, y el numero -9 en lugar de 0, 1. Voy muy desviado?Se que el tema se ha desvirtuado mucho, y que poco cabe aquí, lo siento. Gracias y saludos
Ahora, segundo error que tienes, recuerda cuando se utiliza el complemento a 1 y 2, el primer digito indica que el numero es un numero NEGATIVO, no un numero positivo, suponiendo que el numero esta en complemento a 2, 10111 es negativo, ya que su primer digito es uno.
Recapitulando, solo se calcula el complemento a 2, si el primer digito es uno
Quizá simplemente lo he interpretado mal.
Uhm, si por ejemplo yo presentara el numero 10111 a alguien, y no le dijera si esta en complemento 1 o 2, uno tiende a pensar que es un numero binario sin mas, el 23.Ahora, si yo lo presento como: 00010111, o como 11110111, entonces sabrá por el 1 o 0 del principio si se trata de un número negativo, o un numero positivo. Es correcto?
Algo que pensaba que tenia claro, pero viendo esto CitarRecapitulando, solo se calcula el complemento a 2, si el primer digito es uno se me tambalea un poco. El complemento a 2 se usa para encontrar el negativo de un numero positivo en binario, no?
El tema del complemento es unicamente para los controladores o procesadores. Como solo funcionan con 0's y 1's se busco la forma de representar el signo -Por otro lado, si una pc usa un complemento u otro no es algo que realmente deberia preocuparte como programador. (aunque es bueno saber como funcionan las cosas).Saludos