

我编的二进制转十六进制函数:
function BinToHex(bin:string):string;
var
i,l : integer;
begin
i := 0;
for l:=1 to length(bin) do
begin
i := i * 2;
if (bin[l]='1') then
inc(i)
else
if (bin[l]<>'0') then
raise Exception.Create('Error!');
end;
result := inttohex(i,1);
end;
本程序把十进制整数m转换为k进制数。
程序1:
int a[20],i=0;
int print()
{
int j;
for(j=i-1;j>=0;j--) //逆序排列
printf("%d",a[j]);
}
int bian(int m,int k)
{
for(i=0;m>0;)
{
a[i++]=m%k; //除基取余
m=m/k;
}
}
main()
{
bian(10,2);
print();
}
程序2:
int a[20],i=0;
int print()
{
int j;
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
}
int bian(int m,int k)
{
if(m<=0) return;
else
{
a[i++]=m%k;
bian(m/k,k); //函数递归调用
}
}
main()
{
bian(10,2);
print();
}