日期:2014-05-17 浏览次数:20906 次
double d = 123.456;
string bin = "";
int d1 = (int)d;
while (d1 > 0)
{
bin = (d1 % 2 == 1 ? "1" : "0") + bin;
d1 = d1 / 2;
}
double d2 = d - (int)d;
bin = bin + ".";
double x = 0.5;
for (int i = 0; i < 10; i++) // 计算到小数点后10位。
{
bin = bin + (d2 >= x ? "1" : "0");
if (d2 >= x)
d2 = d2 - x;
x = x / 2.0;
}
Console.WriteLine(bin);