你好
即时通讯相对较新的C,但我想成为相当好
;不只是做它通过一些主题。
所以现在每天IM提高了我的计划,试图了解更多的一块,而不是忘却什么
我已经学会了。
所以,现在IM使十进制到二进制的转换,但我不使用任何预先提出的"图书馆"或"类",否则,我觉得好像我还没有真正做什么。
我已经有工作的任何一个点盈"'XXX'的二进制的一段代码。XXX",但
现在im后点工作的一部分。
所以我拿出我的数字图书,并检查了如何做乘法2移动和编码工作得很好,所以一些分数。
然而使用,结束一个时代的无限循环,配发了,因为每次我得到的东西像0.60和行结束了我工作的地方,沿与0.60再次从而结束在一个无限循环。
我不知道如何让程序意义上的IM创造字符串中的重复。
改进的问题在这里。
我的问题是......这将是一个整洁的方法,使程序实现HES运行和无限循环?
是有一些方法,我可以做它的意义,其工作,它已经制定出的东西,它应该停止?
这是到目前为止的代码。
出于某种原因,它使上线呻吟
#include <cstdlib>
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
double a;
double fracvalue(double x)
{
int z;
z = (x/1);
a = x-z;
return (a);
}
int main(int argc, char** argv) {
double x;
int z, c;
cin >> x;
double a =fracvalue(x)*2;
cout << fracvalue(x) << " " << a << endl;//Checking if A and fracvalue are giving correct readings
string Bin = ".";
for (int = i=;i < 20;i++) //<<-- THIS was while(a != 0.0) but it never seemed to
//stop even when it gets to 0.0 also it doesnt write out the complete binary this way
//sometimes only leaving dots or partial BIN numbers.
{
if (a > 1)
{
Bin = Bin +'1';
a = a-1;
cout << a << endl;
a = a*2;
cout << a << endl;}
if (a < 1)
{
Bin = Bin + '0';
a = a*2;
}
cout << Bin << endl;
}
system("PAUSE");
return 0;
}
ž=(X / 1);在功能fracvalue,有趣的是,我没有碰这样的代码:它只是不想再运行
。
反正......这似乎给正确的二进制如果我插入大量的分数,但简单的出来只有0或1,而不是两个。
然而,更大的"(下而!= 0.0)",将永远不会结束,因为数学本身的无限循环。
谢谢