重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
void change(){
成都创新互联专业为企业提供新田网站建设、新田做网站、新田网站设计、新田网站制作等企业网站建设、网页设计与制作、新田企业网站模板建站服务,十年新田做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
int n;//n就是你要转换的十进制数
char ch[10]={'\0'};
while(i10){
if(n%16==0)
ch[i]=0;
else
ch[i]=n%16;
i++;
}
int len=char.length();
for(int i=len-1;i=0;i--)
sprintf("%c",ch[i]);
}
#includestdio.h
#define n 20
void change2(int t)
{ //将十进制数转换到存放二进制的数组中
int i;
int b[n]={0};
for(i=0;i20;i++)
{
b[i]=t%2;
t=t/2;
}
for(i=n-1;i=0;i--)
{
printf("%d",b[i]);
}
printf("\n");
}
void main(){
int demo;
printf("请输入一个十进制数:");
scanf("%d",demo);
change2(demo);
}
递归实现 符合你的要求
/////////////////////////////////////////
// C-Free 4.1
// MinGW 3.4.5
// veket的小号
/////////////////////////////////////////
#include stdio.h
void fun(int n)
{
if(n10)
printf("%c", n+'0');
if(n=10 n=15)
printf("%c", n-10+'A');
}
void RecurrenceDecToHex(int x)
{
if(x=16)
{
RecurrenceDecToHex(x/16);
}
fun(x%16);
}
int main()
{
RecurrenceDecToHex(45036);
return 0;
}
#include "stdafx.h"
#include stdlib.h
#include stdio.h
#include string.h
int converN(int p,int m, int n);
int conver10(char *pold, int m);
int power(int m, int pow);
int main( )
{
int old,fresh,oldv=0;
char cold[100];
printf("输入的数制不能超过16,按q退出,按回车继续。");
while(getchar() != 'q')
{
printf("请输入原数制:");
scanf("%d",old);
printf("请输入新数制:");
scanf("%d",fresh);
printf("请输入要转换数字:");
scanf("%s",cold);
printf("转换后数字为:");
converN(conver10(cold, old),old,fresh);
putchar('\n');
printf("输入的数制不能超过16,按q退出,按回车继续。");
while(getchar() != '\n')
continue;
}
return 1;
}
int power(int m, int pow)
{
if(pow == 0)
return 1;
if(pow 0)
return m*power(m,pow-1);
}
int conver10(char *pold, int m)
{
int len = strlen(pold);
int res=0;
for(int i=0; ilen; i++)
{
switch(tolower(pold[i]))
{
case 'a':
res += (pold[i]-'a'+10) * power(m,len-i-1);
break;
case 'b':
res += (pold[i]-'a'+10) * power(m,len-i-1);
break;
case 'c':
res += (pold[i]-'a'+10) * power(m,len-i-1);
break;
case 'd':
res += (pold[i]-'a'+10) * power(m,len-i-1);
break;
case 'e':
res += (pold[i]-'a'+10) * power(m,len-i-1);
break;
case 'f':
res += (pold[i]-'a'+10) * power(m,len-i-1);
break;
default:
res += (pold[i]-'0') * power(m,len-i-1);
}
}
return res;
}
int converN(int p,int m, int n)
{
int i=0;
if(p/n != 0)
converN(p/n,m,n);
if((i=p%n) 10)
putchar('0' + i);
else
putchar('a' + i - 10);
return 1;
}
#include
stdio.h
#include
string.h
void
dtob(char
*
pre,
int
l,
int
n)
{
if
(n
0)
//终止条件
{
pre[l++]
=
(n%2)
+
'0';
//每次取1个最低位
pre[l]
=
'\0';
dtob(pre,
l,
n/2);
//然后n=n/2,
字符位置l增1,迭代
}
}
int
main()
{
int
n;
char
b[33];
scanf("%d",
n);
dtob(b,
0,
n);
strrev(b);
//结果是倒着的,翻过来
printf("%s\n",
b);
return
0;
}