programacion matlab.suma en base 2 codigo binario
Publicado por lidia (4 intervenciones) el 09/03/2009 22:09:22
Hola a todos, me gustaria que me ayudais con esta funcion.Pasa de decimal a binario enteros con signo con complemento a 2.
tengo la funcion de paso de decimal a binario de los enteros con signo:
function cmpl(x)
i=1;
r=abs(x);
while r>0
C(i)=mod(r,2);
r=(r-C(i))/2;
i=i+1;
end
j=1;
while j<i;
D(j)=C(i-j)
j=j+1;
end
if x>0
D=[0,D];
end
if x<0
D=[1,D];
end
a continuacion, despues de obtener el numero en binario, modifico la funcion anterior para el cambio los ceros pos unos y viceversa y la funcion seria:
function cmpl(x)
i=1;
r=abs(x);
while r>0
C(i)=mod(r,2);
r=(r-C(i))/2;
i=i+1;
end
j=1;
while j<i;
D(j)=C(i-j);
j=j+1;
end
if x>0
D=[0,D];
end
if x<0
D=[0,D]
E=[1:length(D)];
for G=[E./E];
H=G-D;
end
H=[1,H]
End
ahora solo me quedaria sumarle a este ultimo numero( al ultimo elemento) que obtengo un , 1 teniendo en cuenta que si sumo 1+1 sera 0 y le sumaria 1 al siguiente el elemento si este fuera uno pasaria igual...
Esto ya no se como hacerlo.
Si alguien me puediera decir como es se lo agradeceria muxo.
Gracias!!!
tengo la funcion de paso de decimal a binario de los enteros con signo:
function cmpl(x)
i=1;
r=abs(x);
while r>0
C(i)=mod(r,2);
r=(r-C(i))/2;
i=i+1;
end
j=1;
while j<i;
D(j)=C(i-j)
j=j+1;
end
if x>0
D=[0,D];
end
if x<0
D=[1,D];
end
a continuacion, despues de obtener el numero en binario, modifico la funcion anterior para el cambio los ceros pos unos y viceversa y la funcion seria:
function cmpl(x)
i=1;
r=abs(x);
while r>0
C(i)=mod(r,2);
r=(r-C(i))/2;
i=i+1;
end
j=1;
while j<i;
D(j)=C(i-j);
j=j+1;
end
if x>0
D=[0,D];
end
if x<0
D=[0,D]
E=[1:length(D)];
for G=[E./E];
H=G-D;
end
H=[1,H]
End
ahora solo me quedaria sumarle a este ultimo numero( al ultimo elemento) que obtengo un , 1 teniendo en cuenta que si sumo 1+1 sera 0 y le sumaria 1 al siguiente el elemento si este fuera uno pasaria igual...
Esto ya no se como hacerlo.
Si alguien me puediera decir como es se lo agradeceria muxo.
Gracias!!!
Valora esta pregunta
0