8进制转10进制的编程,用C语言的。请高手回答

谢谢你呀~

你可以参考一下
#include<stdio.h>
r8(int a)
{
int i,j;
if(a==0)
return (0);
else
{
j=a%8;
i=a/8;
r8(i);
printf("%d",j);
}
}

int main()
{
int n;
printf("请输入十进制数:");
scanf("%d",&n);
printf("转换成八进制数是:");
r8(n);
printf("\n");
}

参考资料:mail

温馨提示:内容为网友见解,仅供参考
第1个回答  2010-12-12
#include<stdio.h>
int Dec2Oct(int num) ;
int main()
{
int n;
printf("输入八进制数(0-7):\n");
scanf("%o",&n);
printf("十进制数是:%d\n",Dec2Oct(n));
return 0;
}
int Dec2Oct(int num)
{
if (num<8)
return num;//小于8,直接返回
int i=0,pos=-1;
int temp=1,result=0;
while(num>0)
{
pos++;//记录当前位,从0位开始,逐位计算
temp=1;
for (i=pos;i>0;i--)
temp*=8;//计算当前位应该乘以8的几次方
temp*=(num%8);//再乘以当前位的数值
result+=temp;//保存结果
num/=8;
}
return result;
}
第2个回答  2010-12-12
#include<iostream>
using namespace std;
void main()
{
int x;
cin >> x;
cout <<oct<<x<<endl;
}
第3个回答  2010-12-12
#include "stdio.h"
#include "conio.h"
int oct_to_int( char * p)
{
int ret = 0, k=0;
while (*p)
{
if ( '0'<= *p && *p <='7')
{
ret = ret * 8 + (*p - '0');
k++;
}
else if (k>0) break;
p ++ ;
}
return ret;
}
int main( )
{

char s[1024];
int i;
printf("please enter a oct num:");
scanf("%s",&s[0]);
i = oct_to_int( s );
printf( "i=%d\n",i);
getch ();
return 0;

}

c语言 八进制转十进制程序
include<stdio.h> void main(){ char *p,s[6];int n;p=s;gets(p);n=0;while(*(p)!='\\0'){n=n*8+*p-'0';p++;} printf("%d",n);}

在计算机二级c语言中 八进制 如何转为 十进制?
八进制 p="1234"那么变成十进制就是 x=0 x=0*8+ 4 (但是*p里面是字符'4',所以要把他转化真正的4 ,就用'4'-'0')

c语言中8进制转10进制的算法
C语言中八进制转十进制的算法是:将八进制数每一位上的数字乘以对应的权重,权重为八的幂次方,从右至左计算。以下是 在C语言中,进行八进制转十进制的转换,主要是依据每个数字的权重。因为八进制数的基础数字是0到7,所以从右到左每一位代表了不同的权重。计算时,需要将每一位上的数字乘以一个...

计算机中八进制数转换成十进制数怎么转
计算机中八进制数转换成十进制数可以通过C语言标准库函数printf()将八进制数直接输出成十进制数。调用格式:printf("%d",<八进制数变量>);,其中,%d表示接受整数值并将它表示为有符号的十进制整数。例如:vari=011;printf("%d",i);表示将八进制数11以十进制整数形式输出,输出为9。printf()函数相...

怎样用c语言把八进制数转化为十进制数??
int main (void){ char x[10]={10000};\/\/八进制的10000是十进制的4096.int i,j;double k=0,w=0;j=strlen(x);\/\/j用来判断用这个八进制数有多少位 for(i=0;i<strlen(x),i++){ k=(x[i]-48)*(pow(8,--j));w+=k;} printf("%f\\n",w);\/\/显示十进制数 retrun 0 ;} ...

C语言 将八进制字符转成十进制整数
n = *p - '0';\/\/ 这一行已经把字符串的第一个字符处理了,所以下面是从下一个字符开始p++; \/\/所以要自加1转化的过程是这样子的:假设 s = '123'fun(s)的运行过程如下:n = '1' - '0'; \/\/n = 1p++; \/\/*p='2'n = n*8+ *p - '0'; \/\/ n = n*8 + '2'-'0' =...

C语言8进制转10进制?
首先*p-'0'拿出1的值,暂时看成一位八进制,所以是1,第二次*p-'0'拿出2的值,暂时看成二位八进制,1的阶位上加一位(1*8+2),第三次*p-'0'拿出2的值,暂时看成三位八进制,1和2的阶位上各加一位(1*8+2)*8+3,也就是1*8*8+2*8+3 ...之后(以此类推)指针遇到'\\0'...

把八进制转换为十进制的c语言(计算机二级考试的题目)
改成x=0;x=x*8+*p-'0' \/\/把字符数字变成真正的数字 比如 八进制 *p="1234"那么变成十进制就是 x=0 x=0*8+ 4 (但是*p里面是字符'4',所以要把他转化真正的4 ,就用'4'-'0')

用C语言进行十进制和八进制的转换怎么做
如果输入是十进制字符串,输出是八进制字符串,则用如下dec2oct函数可实现转换 include<stdio.h>int dec2oct(char *dec,char *oct){ int num=0,i=0,t; char c; do{ c=*dec; if(!c) return 0; \/\/ 出错了,没找到10进制数 if(c>='0' && c<='9') break; ...

求八进制转化为十进制的c语言思路及编程
思路:对于所有的八进制数符,按乘权求和的思想就可以实现转化。include<stdio.h> int main(){int x=0,c;printf("请输入一个八进制数:");scanf("%c",&c);while(c>='0'&&c<'8'){x=x*8+c-'0';scanf("%c",&c);} printf("十进制数为:%d\\n",x);return 0;} ...

相似回答