开年了要工作了,在做面试题,有个题目不懂,怎么不通过系统函数把数字转换成二进制?要支持小数的,谁有代码分享下?谢谢!新年快乐!!!
------解决方案--------------------------------------------------------
月经题,参考:http://bbs.csdn.net/topics/390346850
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);