Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341842
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:03:54

#include
void main()
{

double a;
cin>>a;
cout<<"Change from 'a' ,'b'and 'c' that represent '2','8'and '16':"<<"\t";
char ch;
cin>>ch;


int aint=(int)a;
double aflo=a-aint;
switch(ch)
{
case 'a':
{
int i=0;
int b[20];
while(aint)
{
b[i]=aint%2;
aint/=2;
i++;
}
for(int temp=i-1; temp>=0;temp--)
cout< if(aflo)
{  
cout<<".";
while(aflo)
{
b[i]=(int)(aflo*2);
cout< aflo=(aflo*2-(double)b[i]);
i++;
if(i>19)
break;
}
}
cout< }


case 'b':
{
int i=0;
int b[20];
while(aint)
{
b[i]=aint%8;
aint/=8;
i++;
}
for(int temp=i-1; temp>=0;temp--)
cout< if(aflo)
{  
cout<<".";
while(aflo)
{
b[i]=(int)(aflo*8);
cout< aflo=(aflo*8-(double)b[i]);
i++;
if(i>19)
break;
}
}
cout< }
case 'c':
{
    int i=0;
char b[20];
int j;
while(aint)
{
j=aint%16;
if(j<=9)
b[i]=j+'0';
else
b[i]=j-10+'A';
aint/=16;
i++;
}
for(int temp=i-1; temp>=0;temp--)
cout< if(aflo)
{  
cout<<".";
while(aflo)
{
j=(int)(aflo*16);
if(j<=10)
{
b[i]=j+'0';
cout< }
else
{
b[i]=j-10+'A';
cout< }
aflo=(aflo*16-(double)j);
i++;
if(i>19)
break;
}
}
cout< }
}
}

--------------------next---------------------

阅读(1122) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~