首页 > 解决方案 > 如何将十进制(或浮点)转换为二进制?C#

问题描述

我有这个给定的数字,例如10.5,我想将它转换成它的二进制表示。结果应该是1010.1。如何在 C# 中实现这一点?

标签: c#binarydecimal

解决方案


要转换小数点前的部分,您可以使用内置的Convert.ToString(integerPart, 2)

我不相信小数部分有这样的内置函数,但你可以像在学校学习的小数部分那样做:

// x must be < 1
string ConvertFractionalPart(double x, int maxDigits)
{
    var sb = new StringBuilder();
    while (x > 0 && sb.Length < maxDigits)
    {
        if (x >= 0.5)
        {
            sb.Append("1");
            x -= 0.5;
        }
        else
        {
            sb.Append("0");
        }
        x = 2*x;
    }
    return sb.ToString();
}

推荐阅读