C语言程序十进制的数转换成八进制的数

应该如何做?

C语言程序十进制的数转换成八进制的数的办法:

#include <stdio.h>
#include <math.h>
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);
}

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-12

#include<stdio.h>

void dec2oct(int x)

{if(x>1)dec2oct(x/8);

 printf("%d",x%8);

}

int main()

{int x;

scanf("%d",&x);

dec2oct(x);

 return 0;

}

第2个回答  2011-11-14
先10转2 再转8,16进制。8,16转2再转10进制。
比如:
八进制:63 ->二进制:110(6) 011(3) -> 十进制:32+16+2+1 = 51
十六进制:A5 ->二进制:1010(A) 0101(5) -> 十进制:128+32+4+1 = 165

十进制 19 ->二进制 1 0011 -> 八进制: (010 011) = 23
-> 十进制:(0001 0011) = 13

通过二进制之后 会简单多了,希望对你有帮助。
第3个回答  推荐于2017-09-24
#include <stdio.h>

int main()
{
int n;
printf("请输入一个十进制的数:");
scanf("%d",&n);
printf("八进制数是:");
printf("%o\n",n);
return 0;
}追问

return 0;是什么意思

追答

就是返回一个值给操作系统,告知操作系统“我已正常退出”。
==================================================
C语言标准规定,main函数的返回值必须是int型,也就是int main。但是国内很多教材都写void main,这是违反ANSI/ISO C标准的。

本回答被提问者采纳
第4个回答  2011-11-14
#include <stdio.h>
#include <math.h>
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);
}

C语言程序十进制的数转换成八进制的数
C语言程序十进制的数转换成八进制的数的办法:include <stdio.h>#include <math.h>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);} ...

c语言“把十进制数转换成八进制数”怎么写
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)*...

C语言十进制怎么转换八进制,求详细描述,不要编译器运行的结果?_百度...
十进制转任意进制一般都是用除基取余法,比如说102转8进制,102除以8,商12,余6 12除以8,商1,余4 1除以8,商0,余1 商为0的时候即转换完成,将余数逆序连接起来就是结果,即10进制的102转8进制为146 将上述过程转为代码就是 include <stdio.h> int main(){ int number = 102, i=0,...

C语言里,10用八进制数怎么表示
10进制数10转换为8进制的转换过程如下:10\/8 = 1 ...(余2)1\/8 = 0 ...(余1) (1\/8中的1是上次运算的商)所以10的8进制数为12 在C语言中,用012来表示8进制12,也即在8进制数的前面加一个数字0。如:int a=012;printf("%d", a); \/\/ 输出10 ...

C语言 十进制数转换八进制 算法
方法一:直接使用控制字符串 %o 八进制%x 方法二:求余来算,比如求十进制数 x(x>100) 的8进制,先通过 x%8 可以得到个位(末位)上的数,当十进制数等于8时,必然会进位,求余的结果正好是不能进位的部分,x=x\/8(这就像位移,x的8进制数向右移了一位),这样已经求出来的 个位 位移...

用C语言把十进制转换为8进制,最好用栈结构
void dec2oct(int x) \/\/将十进制数x转化为8进制数输出 {if(x>7)dec2oct(x\/8); \/\/如果 x 不止一位8进制数,则先处理其高位部分 printf("%d",x%8); \/\/递归返回时再输出 x 的最低位 } int main(){int x;scanf("%d",&x); \/\/读入要转换的十进制数x dec2oct(...

用c语言的函数调用如何将一个十进制数转换为八进制数?
1 - 十进制转二进制,2 - 十进制转八进制,3 - 十进制转十六进制");\\r\\nscanf("%d",&select);\\r\\nswitch(select)\\r\\n{\\r\\ncase 1 : two(); break; \/\/十进制转二进制\\r\\ncase 2 : eight(); break; \/\/十进制转八进制\\r\\ncase 3 : sixteen(); break; \/\/十进制转十六进制\\...

C 编程 ???把十进制数转换成八进制数
Description: 十进制数转化成相应的二、八、十六或其它进制 \/ include<stdio.h> void convert(int num,int base);\/\/打印转换后的数字的函数原型 main(){ int num,base;\/\/num代表要转换的数,base代表要转换的进制 printf("Please input a decimal number:\\n");scanf("%d",&num);printf("...

【c语言】输入一个十进制数,转换成对应的八进制数和十六进制数并...
int x,int n){int a[33],i; for(i=0;x;x\/=n)a[i++]=x%n; for(i--;i>=0;i--) if(a[i]<10)printf("%d",a[i]); else printf("%c",a[i]+55); printf("\\n");}int main(){int x; scanf("%d",&x); printf("%d的八进制:",x);dec2n(x,8)...

c语言10进制转8进制以及16进制的源程序
long dtoe(int a) \/\/ 八进制 { if (a<8) { return a;} else return (dtoe(a\/8)*10+a%8);} void dtoh(int a,char h[]) \/\/十六进制 { int i;i=(int)(log(a)\/log(16));h[i+1]=0;while (a>15) { if (a%16<10) h[i--]=48+(a%16);else h[i--]=...

相似回答