十进制转二进制 代码

编程代码 free pascal

第1个回答  2013-07-08
十进制转二进制:
用2辗转相除至结果为1
将余数和最后的1从下向上倒序写 就是结果
例如302
302/2 = 151 余0
151/2 = 75 余1
75/2 = 37 余1
37/2 = 18 余1
18/2 = 9 余0
9/2 = 4 余1
4/2 = 2 余0
2/2 = 1 余0
故二进制为100101110

二进制转十进制
从最后一位开始算,依次列为第0、1、2...位
第n位的数(0或1)乘以2的n次方
得到的结果相加就是答案
例如:01101011.转十进制:
第0位:1乘2的0次方=1
1乘2的1次方=2
0乘2的2次方=0
1乘2的3次方=8
0乘2的4次方=0
1乘2的5次方=32
1乘2的6次方=64
0乘2的7次方=0
然后:1+2+0
+8+0+32+64+0=107.
二进制01101011=十进制107.

以上分别是十进制转二进制和二进制转十进制的例题
第2个回答  2013-07-08
全文:
var
n,i,j:longint;
a:array[0..500] of 0..1;
begin
readln(n); //十进制数
repeat
a[0]:=a[0]+1;
a[a[0]]:=n mod 2;
n:=n div 2;
until n=0;
for i:=a[0] downto 1 do
write(a[i]);
writeln;
end.
//对于0,此程序也会输出0

这是一个简单实现,对于这单个题目来说,使用字符串存储会更方便本回答被提问者和网友采纳
相似回答