首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

小龙年第一回提问C

2013-02-19 
小龙年第一次提问C#开年了要工作了,在做面试题,有个题目不懂,怎么不通过系统函数把数字转换成二进制?要支

小龙年第一次提问C#
开年了要工作了,在做面试题,有个题目不懂,怎么不通过系统函数把数字转换成二进制?要支持小数的,谁有代码分享下?谢谢!新年快乐!!!
[解决办法]
月经题,参考: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);

热点排行