将十进制转化为二进制

2021/10/7 6:11:17

本文主要是介绍将十进制转化为二进制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

例题:将十进制转化为二进制。(输入的数不大于10000)

 

program demicalToBinary;

type
arrayType=array[1..14] of integer;

var
arr:arrayType;
k,n,modNum,i,flag,highest:integer;


begin
readln(k);
n:=1;


while k>=2 do
begin
{
writeln('this is in loop,status:k:',k,' n:',n);
}
modNum:=k mod 2;
k:=k div 2;
arr[n]:=modNum;
n:=n+1;
end;

{
writeln('now loop over,status:k:',k,' n:',n);
}
if k=1 
then arr[n]:=1;



flag:=0;
for i:=14 downto 1 do
if arr[i]=1
then 
begin
flag:=1;
highest:=i;
break;
end;

for i:=highest downto 1 do
write(arr[i]);


end.

 上面是我写的代码。

写代码时的收获是

把人脑当计算机,人工去执行一遍过程。就能感觉到步骤都很简单,一步一步的执行出来。

计算机也是这样执行的,只是它很快,一下就执行好了罢了。

 

代码改进:

Version2:

 

program demicalToBinary;

type
arrayType=array[1..14] of integer;

var
arr:arrayType;
k,n,modNum,i,flag,highest:integer;


begin
readln(k);
n:=1;

{
while k>=2 do
}
while k<>0 do
begin
{
writeln('this is in loop,status:k:',k,' n:',n);
}
modNum:=k mod 2;
k:=k div 2;
arr[n]:=modNum;
n:=n+1;
end;

{
writeln('now loop over,status:k:',k,' n:',n);
}
{
if k=1 
then arr[n]:=1;
}

{
flag:=0;
for i:=14 downto 1 do
if arr[i]=1
then 
begin
flag:=1;
highest:=i;
break;
end;

for i:=highest downto 1 do
write(arr[i]);
}
for i:=n-1 downto 1 do
write(arr[i]);


end.

 



这篇关于将十进制转化为二进制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程