C# 自定义数字到二进制?

C# 自定义数字到二进制?,c#,C#,我正在学习C#,我正在尝试获取一个自定义数字,以便将其转换为二进制。我在这里查找了几个关于堆栈溢出的表单,它们有类似的代码,但不起作用。有什么想法吗 Console.WriteLine("You have chosen binary, input a number then it will be converted to binary."); string num1input = Console.ReadLine(); double num1 = double.Parse(num1input);

我正在学习C#,我正在尝试获取一个自定义数字,以便将其转换为二进制。我在这里查找了几个关于堆栈溢出的表单,它们有类似的代码,但不起作用。有什么想法吗

Console.WriteLine("You have chosen binary, input a number then it will be converted to binary.");
string num1input = Console.ReadLine();
double num1 = double.Parse(num1input);
var binary = Convert.ToString(num1, 2);
Console.WriteLine("{0} converted to binary is {1} " ,num1, binary);

您的问题不清楚您是否正在尝试将整数或浮点值转换为二进制字符串表示形式

对于整数,请使用以下代码:

void Main()
{
    Console.WriteLine("You have chosen binary, input a number then it will be converted to binary.");
    string num1input = Console.ReadLine();
    int num1 = int.Parse(num1input);

    var binary = Convert.ToString(num1, 2);

    Console.WriteLine("{0} converted to binary is {1} ", num1, binary);
}
对于double,以下代码可能是您想要的:

void Main()
{
    Console.WriteLine("You have chosen binary, input a number then it will be converted to binary.");
    string num1input = Console.ReadLine();
    double num1 = double.Parse(num1input);

    long bits = BitConverter.DoubleToInt64Bits(num1);

    var binary = Convert.ToString(bits, 2);

    Console.WriteLine("{0} converted to binary is {1} ", num1, binary);
}

我觉得这个练习很有趣,所以我做了以下几点:

public IEnumerable<char> ConvertToBase2(int myNumber) {
    while(myNumber != 0) {
        var returnValue = (myNumber%2 == 0) ? '0' : '1';

        myNumber = (myNumber % 2 == 0) ? myNumber / 2 : 
            (myNumber - 1) / 2;

        yield return returnValue;
    }
}
Console.Write(String.Concat(
    ConvertToBase2(9).Reverse()
));
public IEnumerable ConvertToBase2(int myNumber){
while(myNumber!=0){
var returnValue=(myNumber%2==0)?“0”:“1”;
myNumber=(myNumber%2==0)?myNumber/2:
(myNumber-1)/2;
收益值;
}
}
Console.Write(String.Concat(
ConvertToBase2(9).反向()
));
它只适用于整数。我不记得浮点数是如何实现的


顺便说一下,这是一个更好的答案;-)

你说的“二进制”是什么意思?您是指包含
Int32
值的base-2表示形式的
字符串
表示形式还是其他表示形式?自定义数字是什么?看起来您希望将数字作为浮点值输入。是否要生成浮点数的二进制等价物?我注意到您的示例使用的是
System.Double
,它是IEEE-754浮点类型,具有非平凡的二进制表示形式。您所说的
是什么意思,但它不起作用