首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

用递归函数输出带小数的和不带小数的十进制数的二进制表示解决办法

2012-04-27 
用递归函数输出带小数的和不带小数的十进制数的二进制表示[size16px][/size][color#993300][/color]请用

用递归函数输出带小数的和不带小数的十进制数的二进制表示
[size=16px][/size][color=#993300][/color]请用c++写
谢谢,本人新人,多多关照。

[解决办法]
#include<iostream>
#include<cmath>
using namespace std;
double ten;
int len1=0,len2=0;//整数部分与小数部分的长度
int binary[100];//保存整数部分
int binarydot[100];//保存小数部分
int cons=4;//小数精度
void trans(int n)
{
if(n!=0)
{
binary[len1]=n%2;
len1++;
n/=2;
trans(n);
}
}
void transdot(double n)
{
for(int i=0;i<cons;i++)
{
n*=2;
if(n>=1){
binarydot[len2]=1;//大于1取1
n--;
}
else
binarydot[len2]=0;//小于1取0
len2++;

}
}
int main()
{

cin>>ten;
int inte=(int)ten;
double dot=abs(ten-inte);//取出小数部分
trans(inte);

for(int i=len1-1;i>=0;i--)
cout<<binary[i];
if(dot!=0){//当存在小数部分时操作
transdot(dot);
if(len1==0)//当整数部分为0时补0
cout<<0;
cout<<'.';
for(int i=0;i<len2;i++)
cout<<binarydot[i];
}
}


补完了带小数的十进制了 不知有没有BUG...正负数还没处理...

热点排行