字典翻译 问答 其它 十进制实数转二进制的程序Programzy6;varbin:array[0..50]of0..1;x:longint;k,i:integer;beginwriteln('readdecimaldatax:');read(x);fori:=0to50dobin[i]:=0;k:=0;whilex>0dobeginbin[k]:=xmod2;x:=xdiv2;k:=k+1;end;writeln('Binary:
问题标题:
十进制实数转二进制的程序Programzy6;varbin:array[0..50]of0..1;x:longint;k,i:integer;beginwriteln('readdecimaldatax:');read(x);fori:=0to50dobin[i]:=0;k:=0;whilex>0dobeginbin[k]:=xmod2;x:=xdiv2;k:=k+1;end;writeln('Binary:
问题描述:

十进制实数转二进制的程序

Programzy6;

varbin:array[0..50]of0..1;

x:longint;

k,i:integer;

begin

writeln('readdecimaldatax:');read(x);

fori:=0to50dobin[i]:=0;

k:=0;

whilex>0do

begin

bin[k]:=xmod2;x:=xdiv2;

k:=k+1;

end;

writeln('Binary:');

fori:=k-1downto0dowrite(bin[i]:1);

end.

陈应祖回答:
  你这是整数的转换程序啊.
陈应祖回答:
  由于十进制小数转化为二进制小数通常都是无限循环小数,所以下面最多输出50位二进制小数(可以修改为你想要的位数。   {$N+} {在FreePascal下不需要此行}   varbin:array[0..31]of0..1;   y:double;x:longint;   k,i:integer;   begin   writeln('readdecimaldatax:');read(y);   fori:=0to50dobin[i]:=0;   k:=0;x:=trunc(y);y:=y-x;   whilex>0do   begin   bin[k]:=xmod2;x:=xdiv2;   k:=k+1;   end;   writeln('Binary:');   fori:=k-1downto0dowrite(bin[i]:1);   i:=0;write('.');   while(y>1e-10)and(i<50)do {这里规定最多50位小数}   begin   y:=y*2;inc(i);   ify>=1thenbeginwrite(1);y:=y-1endelsewrite(0);   end;   writeln;   end.
点击显示
其它推荐
热门其它推荐
  • 其它