c语言十进制转8进制函数 c语言10进制转8进制算法

C语言十进制怎么转换八进制,求详细描述,不要编译器运行的结果?

十进制转任意进制一般都是用除基取余法,比如说102转8进制,

创新互联建站长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为广元企业提供专业的成都做网站、网站设计,广元网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

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, div, rem;

int system = 8;//8进制

char s[50];

while (number) //除基取余法

{

div = number / system; //商

rem = number % system; //余

s[i++] = rem = 9 ? rem + '0' : rem - 10 + 'A';

number = div; //上次的商赋给number

}

for (--i; i = 0; i--)

printf("%c", s[i]);

printf("\n");

getchar();

return 0;

}

用C语言进行十进制和八进制的转换怎么做

如果输入是十进制字符串,输出是八进制字符串,则用如下dec2oct函数可实现转换

#includestdio.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; // 找到十进制数了

else    dec++;

}while(1);

do{

num = num*10 + (c-'0');

c=*++dec;

if(!c) break;   // 没有其他字符了

if(c='0'  c='9') continue;   // 还有十进制字符,继续

else break;    // 没有其他十进制字符了,退出

}while(1);

do{

t = num % 8;

oct[i] = t+'0';

num = num / 8;

if(num==0) break;

i++;

}while(1);

for(t = (i+1)/2;t=i;t++){

num = oct[t];

oct[t] = oct[i-t];

oct[i-t]=num;

}

oct[i+1]='\0';

return 1;

}

int main()

{

char dec[20],oct[20];

while(scanf("%s",dec)==1)

if(dec2oct(dec,oct)) printf("%s\n",oct);

else break;

return 1;

}

该函数dec2oct先将输入字符串中的 10进制字符串转换成二进制数存下来,然后再将二进制数转换成八进制字符串。

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语言十进制转8进制函数 c语言10进制转8进制算法
转载源于:http://pwwzsj.com/article/dopopjh.html