设计一递归函数实现将任一正整数转达换成八进制数。
设计一递归函数实现将任一正整数转达换成十六进制数
希望写出这三个语句,希望用c程序编程
回答好了,一定答谢
设计一递归函数实现将任一正整数转达换成八进制数。
设计一递归函数实现将任一正整数转达换成十六进制数
希望写出这三个语句,希望用c程序编程
回答好了,一定答谢
主要就是递归.. 三个语句的结构都一样. 除了十六进制的输出要用%x格式,因为%d不能表示10以上的数.
十进制转二进制:
#include< stdio.h >
void TenToB( int n )
{
if( n > 1 )
TenToB( n / 2 );
printf( "%d", n % 2 );
}
int main()
{
int n;
scanf( "%d", &n );
TenToB( n ); //传递十进制,转换二进制输出.
}
十进制转八进制:
#include< stdio.h >
void TenToB( int n )
{
if( n > 7 )
TenToB( n / 8 );
printf( "%d", n % 8 );
}
int main()
{
int n;
scanf( "%d", &n );
TenToB( n ); //传递十进制,转换二进制输出.
}
十进制转十六进制:
#include< stdio.h >
void TenToB( int n )
{
if( n > 15 )
TenToB( n / 16 );
printf( "%X", n % 16 );
}
int main()
{
int n;
scanf( "%d", &n );
TenToB( n ); //传递十进制,转换二进制输出.
}
下列函数参数表示将整数x转换成y进制数:
a(int x,int y)
{int i=0,j,num[20];
while(x) {num[i++]=x%y;x=x/y;}
for(j=i-1;j>=0;j--)
printf("%d",num[j]);printf("\n");}
调用如下:
main()
{int x;
scanf("%d",&x);
a(x,2);a(x,8);a(x,16);} 输入x,分别转成2 8 16进制数,并输出。