C语言程序怎么把十进制的数转换成八进制的数?

Python025

C语言程序怎么把十进制的数转换成八进制的数?,第1张

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)

}

#include<stdio.h>

#include<string.h>

main()

{

int i,m,n,s=0,t=1char a[100],b[100] 

gets(a)//用回车分割 

scanf("%d%d",&n,&m) //输入的进制和想要转换的进制 

for(i=strlen(a)-1i>=0i--)//先转10进制 

{ if(n!=16) 

s+=(a[i]-48)*t

else

  s+=(a[i]-55)*t

t*=n

}

for(i=0si++)//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)-1i>=0i--)

printf("%c",b[i]) 

}

这是任意进制的转换 望满意

#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)

}

扩展资料:

一、二进制数转换

二进制数转换成十进制数

由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。这种做法称为"按权相加"法。例1105把二进制数110.11转换成十进制数。

二、十进制数转换为二进制数

十进制数转换为二进制数时,由于整数小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。

1、十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,

如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

2、十进制小数转换为二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。

然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

参考资料:

百度百科——十进制