var dec,i,d : Integer; value : Byte; s : String; begin Write('Input BIN number: '); Readln(s); for i:=Length(s) downto 1 do begin val(s[Length(s)-i+1],value,d); dec:=dec+round(value*exp((i-1)*ln(2))); end; WriteLn('DEC=',dec); ReadLn end.
Всего-то
volvo
8.12.2005 18:31
Сравним скорость работы?
CoolZero
15.12.2005 18:45
а с переводом из шестнадцатеричной в двоичную не поможете?
var i,k,y,x:integer; s:char; p:real; j,w:char; f,a:string; b:array[1..100] of string; c:array[1..100] of integer; begin readln(s); k:=1; y:=length(s); for i:=1 to y do begin b[i]:=Copy(s,k,1); inc(k); case w of '0': a:='0000'; '1': a:='0001'; '2': a:='0010'; '3': a:='0011'; '4': a:='0100'; '5': a:='0101'; '6': a:='0110'; '7': a:='0111'; '8': a:='1000'; '9': a:='1001'; 'a': a:='1010'; 'b': a:='1011'; 'c': a:='1100'; 'd': a:='1101'; 'e': a:='1110'; 'f': a:='1111'; end; end; writeln(a); readln; end.
вот не работает зараза, не знаю как из стринга в другое "расширение" перевести, чтобы с кэйсом работало