【问题标题】:C# Decimal To BinaryC# 十进制转二进制
【发布时间】:2022-01-26 05:52:27
【问题描述】:

在您的帮助下,我正在一点一点地学习。 永远谢谢你。

我有一个问题。 我知道如何将十进制转换为二进制( convert.Tostring(2, 2); )但结果是 0010。

我想要这些结果 0000 0010。

我怎样才能这样转换??

static byte[] gbuff = new byte[1000];
...

string[] rxData = new string[31]

.....

    for(int x=0; x<31; x++)
    {
        rxData[x] = Convert.Tostring(gbuff[x], 2);
    }

我总是感谢所有帮助我的人。

【问题讨论】:

  • 0填充字符串使其长度为8位?
  • @Llama 真棒!我什至不知道 padleft 存在。我今天学习一件事。谢谢! :)
  • 这能回答你的问题吗? Convert integer to binary in C#

标签: c# binary


【解决方案1】:
Convert.ToString(2, 2).PadLeft(8, '0');

【讨论】:

  • 我什至不知道 padleft 的存在......谢谢你! :)
【解决方案2】:

使用辅助方法将数字转换为二进制形式

static byte[] gbuff = new byte[1000];
...

string[] rxData = new string[31]
.....

for(int x=0; x<31; x++)
{
    rxData[x] = convertNumToBinary(Convert.ToInt32(gbuff[x]));
}

数字转二进制的方法

public string convertNumToBinary(int num)
{
    bool flag = true;
    Stack<int> myStack = new Stack<int>();
    while (flag)
    {
        int remaining = num % 2;
        myStack.Push(remaining);

        num = num / 2;


        if (num == 1)
        {
            flag = false;
            myStack.Push(num);
        }
    }

    string s = "";
    int len = myStack.Count;
    for (int i = 0; i < len; i++)
    {
       s += myStack.Pop();
    }
    
    while(s.Length < 8)
    {
       s = "0" + s;
    }
    return s;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-30
    • 2012-11-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2012-04-08
    • 2012-11-09
    相关资源
    最近更新 更多