【问题标题】:Get the n digit binary representation of a number获取数字的 n 位二进制表示
【发布时间】:2012-04-30 10:04:48
【问题描述】:

我已经尝试过这种方式来获取 C# 中的二进制表示

int i = 1;
string binary = Convert.ToString(i, 2);

它返回单个字符字符串“1”

我需要一个 n 位字符串假设数字是 8 n 我想要一个 5 位二进制表示,

我需要它是“01000”

位数 (n) 是输入。

谢谢

【问题讨论】:

    标签: c# data-conversion


    【解决方案1】:
    string binary = Convert.ToString(i, 2).PadLeft(5, '0');
    

    【讨论】:

      【解决方案2】:

      你可以这样做。

      string str = Convert.ToString(8, 2).PadLeft(5, '0');
      

      PadLeft 用于将 0 放在表达式的左侧,这里我们给出 5 是数字的总宽度。第二个参数是当数字少于 5 个字符时放在左边的字符

      【讨论】:

        【解决方案3】:

        滚动你自己,你可以使用这样的东西(未经测试,但我认为这应该可行):

        int i = 8; // your number
        int noZeros = 5;
        StringBuilder sb = new StringBuilder();
        while(i != 0 && noZeros > 0){
            if(i & 1 != 0){ sb.Insert(0, "1"); }
            else { sb.Insert(0, "0"); }
            i = i >> 1;
            noZeros --;
        }
        
        string binary = sb.ToString();
        

        这应该适用于任何 int。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-24
          • 2019-02-04
          • 2014-04-18
          • 1970-01-01
          • 2013-05-07
          • 1970-01-01
          • 2018-03-17
          相关资源
          最近更新 更多