numero = input('introduce un numero binario en positivo: '); % el numero se debe introducir entre corchetes como un vector % calculo del complemento a 1 for i = 1:length(numero) if numero(i) == 1 numero(i) = 0; else numero(i) = 1; end end % suma binaria acarreo = 1; % llamamos acarreo al exceso que se produce al sumar. % inicialmente vale 1 ya que queremos sumar 1 al numero. % la suma se realiza de derecha a izquierda: for i= length(numero):-1:1 % solo 2 casos de los 4 posibles producen modificaciones if numero(i) == 0 && acarreo == 1 numero(i) = 1; acarreo = 0; elseif numero(i) == 1 && acarreo == 1 numero(i) = 0; acarreo = 1; end end % si al final sigue existiendo acarreo, se muestra primero % el acarreo y despues el resto del numero (caso en el que % todos los valores sean unos) if acarreo == 1 % se incluye el 1 al principio del vector numero = [1, numero]; end % mostramos el numero transformado disp(numero);