Volvamos a ver mi código:
Código Delphi
[-]
var
n, Numero: Integer;
begin
Numero:=0; for n:=Lenght(Edit1.Text) downto 1 do
begin
If Edit1.Text[n]='1' then Inc(Numero, Power(2, Length(Edit1.Text)-n));
end;
ShowMessage('El binario '+Edit1.Text' equivale al número entero '+IntToStr(Numero));
end;
Lenght(Edit1.Text) es lo que tú quieres llamar
cantidad, pero si así te aclaras mejor, pues entonces hazlo
If Edit1.Text[n]='1' then significa "si el carácter
n es uno entonces...". Así es como discrimino al cero.
La función Inc incrementa la variable Numero en la cantidad que se le dice en el segundo parámetro. Estas dos líneas hacen lo mismo:
Código Delphi
[-]
Inc(Numero, 2);
Numero:=Numero + 2;
Lo que hago es incrementarlo la potencia de dos, teniendo en cuenta que el exponente es el orden del carácter leído,
comenzando por la derecha y desde cero. Si te fijas,
cantidad - n ya hace esto (al principio vale 0, y al final cantidad - 1)
A ver si de esta forma te aclaras más:
Código Delphi
[-]
var
n, Cantidad, Numero: Integer;
begin
Numero:=0; Cantidad:=Lenght(Edit1.Text); for n:=Cantidad downto 1 do
begin
If Edit1.Text[n]='1' then Numero:=Numero + Power(2, Cantidad - n);
end;
ShowMessage('El binario '+Edit1.Text' equivale al número entero '+IntToStr(Numero)); end;
¿Mejor así?
Salu2.