下午做了道c语言题目,老师只讲了整数转换,自己试着实现了一下包括小数点的进制转换。
思路是:用一个字符型数组存储八进制数,用一个for循环遍历到小数点的位置,小数点前用整数转换,之后用小数转换。
//将一个八进制转化为十进制
#include <iostream>
using namespace std;
#include <string.h>
#include <math.h>
int main()
{
cout<<"请输入一个八进制数"<<endl;
char eight[100];
gets(eight);
int len=strlen(eight);
int i;
for(i=0;i<len&&eight[i]!='.';i++);
float ten=0;
int num;
for(int j=0;j<i;j++)
{
num=eight[j]-'0';
ten+=num*pow(8,i-j-1);
}
for(int j=i+1;j<len;j++)
{
num=eight[j]-'0';
ten+=num*pow(8,i-j);
}
cout<<"转化为十进制数是"<<ten<<endl;
}
输出结果: