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乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。
然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
参考资料:
百度百科——十进制