C语言 将十进制整数化成任意进制的数

1.键盘上任意输入一个十进制整数。2.然后输入需要转换的进制的基数。3.根据十进制数化成其它进制数的计算方法,编写程序将其转换成我们所需要的进制的数。三、算法十进制数化成... 1.键盘上任意输入一个十进制整数。
2.然后输入需要转换的进制的基数。
3.根据十进制数化成其它进制数的计算方法,编写程序将其转换成我们所
需要的进制的数。
三、算法
十进制数化成其它进制数的计算方法是:用十进制不断数除以其它进制的基
数取余数,一直到被除数为零时,以相反的次序输出余数。
就是转换成 二进制 八进制 十六进制 的
展开
 我来答
kuaidh00
2007-12-29 · TA获得超过713个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:534万
展开全部
---------------vc6.0测试通过---要更多的进制表示,你可以在switch语句中自己加---------------
#include <stdio.h>
#include <stdlib.h>

void main()
{
int nNum,Rad,i=0,Residue;
int Store[50];
printf("请输入一个任意整数:");
scanf("%d",&nNum);
printf("\n请输入一个合法的表示进制的基数[2,16]:");
scanf("%d",&Rad);
if(Rad<=1)
exit(-1);
printf("\n转换后的结果是:");
while(nNum>=Rad)
{
Residue=nNum%Rad;//0
nNum/=Rad;//1
Store[i]=Residue;//0
++i;
}
Store[i]=nNum;

for(;i>=0;--i)
switch(Store[i])
{
case 0:
printf("0");
break;
case 1:
printf("1");
break;
case 2:
printf("2");
break;
case 3:
printf("3");
break;
case 4:
printf("4");
break;
case 5:
printf("5");
break;
case 6:
printf("6");
break;
case 7:
printf("7");
break;
case 8:
printf("8");
break;
case 9:
printf("9");
break;
case 10:
printf("A");
break;
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;
}

printf("\n");

}
蝶舞王城
2007-12-29 · TA获得超过106个赞
知道答主
回答量:96
采纳率:0%
帮助的人:0
展开全部
程序仅供参考:
#include <stdio.h>
#include <stdlib.h>
void main()
{int num,i,j,x,y,buff[20];
printf("Please input a number:");
scanf("%d",&num);
printf("\nPlease input the changed num:");
scanf("%d",&x);
y=num;
for(i=0;y>0;i++){
y=buff[i]=num%x;
num=num/x;
}
printf("Output the results:");
for(j=i;j>=0;j--)
printf("%d",buff[j]);
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自由的菜鸟
2007-12-29 · TA获得超过2736个赞
知道大有可为答主
回答量:1657
采纳率:0%
帮助的人:1284万
展开全部
输入一个十进制正整数,将其转换成二进制、八进制、十六进制数输出
1、形参采用指针
#include "stdio.h"
#include "conio.h"
#include "string.h"
void main()
{
int i,radix;
long n;
char a[33];
void trans10_2_8_16(char *p,long m,int base);
printf("\nInput radix(2,8,16):");
scanf("%d",&radix);
printf("\nInput a positive integer:");
scanf("%ld",&n);
trans10_2_8_16(a,n,radix);
for(i=strlen(a)-1;i>=0;i--)
printf("%c",*(a+i));
puts("\n");
getch();
}

void trans10_2_8_16(char *p,long m,int base)
{
int r;
while(m>0)
{
r=m%base;
if(r<10) *p=r+48;
else *p=r+55;
m=m/base;
p++;
}
*p='\0';
}
2、形参采用数组
#include "stdio.h"
#include "conio.h"
#include "string.h"
void main()
{
int i,radix;
long n;
char a[33];
void trans10_2_8_16(char a[],long m,int base);
printf("\nInput radix(2,8,16):");
scanf("%d",&radix);
printf("\nInput a positive integer:");
scanf("%ld",&n);
trans10_2_8_16(a,n,radix);
for(i=strlen(a)-1;i>=0;i--)
printf("%c",*(a+i));
puts("\n");
getch();
}

void trans10_2_8_16(char a[],long m,int base)
{
int r;
while(m>0)
{
r=m%base;
if(r<10) *a=r+48;
else *a=r+55;
m=m/base;
a++;
}
*a='\0';
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xph8798
2007-12-29
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
main()
{ int n,m,i,c;
char a[100];
printf("输入一个数字:");
scanf("%d",&n);
printf("输入需要转换的进制:");
scanf("%d",&m);
for(i=0;n;n=n/m)
{c=n%m;
if(c>9)
a[i++]='A'+(c-10);
else
a[i++]='0'+c;
for(i--;i>=0;i--)
printf("%c",a[i]);
}
————————————
已经验证过是对的了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
皇家救星1985
2007-12-29 · TA获得超过1131个赞
知道大有可为答主
回答量:1579
采纳率:0%
帮助的人:1651万
展开全部
任意?
100进制要怎么表示好?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式