Sumar binarios

Quería saber si me puedes dar una idea con esto:
Tengo un vector que guara un numero binario (componentes con 1 y 0) y le quiero sumar 1 para pasarlo a complemento a 2. Y ademas si sabes como puedo sumar vectores de números binarios o si hay una forma más fácil.(Sin usar GOTO).

1 respuesta

Respuesta
-1
Pues tienes que hacer ciclos ya que un vector tiene posiciones por ejemplo esto
Si tienes un vector de 5 espacios quiere decir que tienes un vector y tienes un datos en cada posición hasta llegar a 5 y para sumar vinario tendrías que hacer tus funciones para que este mismo encuentre como hacerlo ... Mira pues si me mandas lo que quieres hacer yo lo ago en pascal y después te lo mando ya que creo que es difícil para mi explicarme y para vos entenderlo y con el código ya solo me preguntas que no entiendes y fácil ...
Junio0or acá te paso el programa, le agregue unas aclaraciones para hacerlo más claro.
Program COMPLEMENTOA2;
USES crt;
TYPE
    numero= string[32];
    vector= array[1..32]of byte;
VAR
   N:numero;
   bits,D,f,h,i,j:longint;
   g:integer;{es solo pasa el posible error de la funcion VAL}
   V:vector;
Begin
     clrscr;
     D:=0;
     i:=0;
     writeln('ingrese el numero binario');
     readln(N);
     writeln('ingrese cantidad de bits a trabajar');
     readln(bits); {para definir el tope del vector}
     D:= length(N);  {cantidad de digitos ingresados}
     If D<bits then
        begin
           i:=bits;
             while d>=0 do
                begin
                 val(n[d],f,g);
                 V:=f;   {con esto lo que hago es agregar los ceros
                             para completar los bits (8,16,32)}
                 D:=D-1;
                 i:=i-1;
                end;
             for j:=1 to bits do
                 begin
                     write(V[j]);
                 end;
        end
     Else
        begin
             writeln('el numero es mayor a la cantidad de bits a trabjar');
        end;             {mostrar si se pasa del tope}
{------------------------------------------------}
{esto me sirve para cambiar los 1 por 0 y viceversa}
for h:=1 to bits do
 begin
    If V[h]=1 then
     begin
      V[h]:=0;
     end
    else
     begin
      V[h]:=1;
    end;
   write(V[h]);
   end;
{------------------------------------------------}
{ahora lo que me falta es sumarle 1 a V, para pasarlo a C2}
{y luego ver si se le puede sumar un numero binario cualquiera
              al que ya tengo en C2}
{mi idea es despues pasar esto a una funcion,
 pero primero lo hago asi para ver si funciona}
readkey;
end.
Bueno, espero tu respuesta, desde ya muchas gracias por tu tiempo.
Un saludo!
Emiliano.
Ok amigo sabes hoy en la noche te mando todo ya bien ya que estoy en una maquina sin pascal y hoy si tendré una maquina con pascal por lo que te lo mando hoy... Aquí te lo escribiré y pondré lo que me mandaste en una función ... Espero que lo ayas echo bien jajajaja y según ese numero que me indicas que ya te sale en binario are la suma de otro numero en binario ...
Saludos ---> :)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas