c语言“把十进制数转换成八进制数”怎么写
5个回答
展开全部
#include<stdio.h>
#include<string.h>
main()
{
int i,m,n,s=0,t=1;char a[100],b[100];
gets(a);//用回车分割
scanf("%d%d",&n,&m); //输入的进制和想要转换的进制
for(i=strlen(a)-1;i>=0;i--)//先转10进制
{ if(n!=16)
s+=(a[i]-48)*t;
else
s+=(a[i]-55)*t;
t*=n;
}
for(i=0;s;i++)//10进制转你想要的进制
{
if(s%m>=10)
b[i]=s%m+55;
else
b[i]=s%m+48;
s/=m;
}
b[i]='\0';
for(i=strlen(b)-1;i>=0;i--)
printf("%c",b[i]);
}
这是任意进制的转换 望满意
追问
是用c++写的吗
追答
c语言啊
展开全部
c语言程序十进制的数转换成八进制的数的办法:
#include
#include
void
main()
{
int
n,a,sum
=
0,i
=0;
printf("十进制输出一个数n\n");
scanf("%d",&n);
while(n)
{
a
=
n%8;
n
=
n/8;
sum
+=
a*pow(10,i);
i++;
}
printf("八进制输出sum:%d",sum);
}
#include
#include
void
main()
{
int
n,a,sum
=
0,i
=0;
printf("十进制输出一个数n\n");
scanf("%d",&n);
while(n)
{
a
=
n%8;
n
=
n/8;
sum
+=
a*pow(10,i);
i++;
}
printf("八进制输出sum:%d",sum);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写一个递归函数,除8取余,然后对商进行递归一直到商等于0为止
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-07
展开全部
用10进制数除以8,取余数放到最右边,继续除以8,直到余数为8,之前的余数都是从右向左输出,别忘了8进制数前面都有0,比如20的转换就是084
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main(void)
{
int n; // n存放要转换的数值
int s; // s存放商
int y; // y存放余数
char c[8] = {0}; //此数组存放8位八进制数
int i; // 累计变量
scanf("%d", &n);
s = n;
for (i=0; s != 0; i++)
{
y = s % 8;
s = s / 8;
c[i] = y;
}
printf("\t%d的八进制为:\n\n\t", n);
for (i=7; i>=0; --i)
{
if (i % 8 == 3)
printf(" ");
printf("%d", c[i]);
}
printf("\n\n");
return 0;
}
int main(void)
{
int n; // n存放要转换的数值
int s; // s存放商
int y; // y存放余数
char c[8] = {0}; //此数组存放8位八进制数
int i; // 累计变量
scanf("%d", &n);
s = n;
for (i=0; s != 0; i++)
{
y = s % 8;
s = s / 8;
c[i] = y;
}
printf("\t%d的八进制为:\n\n\t", n);
for (i=7; i>=0; --i)
{
if (i % 8 == 3)
printf(" ");
printf("%d", c[i]);
}
printf("\n\n");
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询