当前位置:编程学习 > C/C++ >>

关于C++编程

十进制与二进制进行转换时,我只能进行整数之间的转换,而小数就不会了。有哪位高手能帮我实现这一编程。比如十进制的10.5转换为二进制。如何编写程序?用C++,不是java,vb等
答案:#include <iostream>
using namespace std;

int main()
{
    double a, b;
    char bin[10];
    int bit = 0;
    cin >> a;
    b = a - (int)a;//截取小数部分。。 
    while (bit < 6)//精确到6位。。 
    {
        b = b * 2;//不断乘2。。 
        if (b >= 1)
        {
            b = b - 1.0;
            bin[bit] = '1';//如果大于1,截取前面的1作为一位小数。。 
        }
        else
        {
            bin[bit] = '0';//输入小于1,那就是0了。。 
        }
        bit++;
    }
    bin[bit] = '\0';
    cout << "小数部分转化为二进制,表示为:0." << bin << endl;
    system("pause");
    return (0);
}
运行结果如下:



程序已经注释了,如果有不明白的可以联系我。。
二进制不能表示小数吧

我只能告诉你方法了,C++我没学好,就算懂都不记得了

方法是整数部分÷2取余数,直到商为1为止,然后按商到余数的顺序写下来就可以了,

小数部分×2取整

用C语言的说法就是这样的:

float s

int a,j,b[10];

j=0;

while(s=0 || j<10 )

{

a=int(s*2);

s=s*2-a;

b[j]=a;

j++;

}

j是控制大部分小数都是永远都乘不完的,你可以自己定义要多少位小数的

然后在把数组b[j]倒着来就OK了

上一个:C++璇█缂栫▼闂 - 宸茶В鍐?- 鎼滄悳闂棶
下一个:c++宏定义问题

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,