【问题标题】:Binary of a number二进制数
【发布时间】:2021-01-06 20:40:57
【问题描述】:

有没有一种简单的方法可以将十进制/ascii 6 位十进制数从 1 转换为 100 为二进制表示? 更具体地说,我对 6 位二进制 ascii 感兴趣。所以我做了这个来获得int 32。 例如,“u”在标准十进制 ascii 中更改为 61 而不是 117。 那么这个 61 需要是“111101”而不是传统的“01110101”,但是在这个 48 + 8 数学之后它并不重要,因为现在它是正常的二进制,只使用了 6 位。

foreach (char c in partToDecode)
                        {
                            var sum = c - 48;
                            if (sum>40)
                            {
                                sum = sum - 8;
                            }

找到了这个,但我不知道如何将它转移到 c#

void binary(unsigned n) {
   unsigned i;
   // Reverse loop
   for (i = 1 << 31; i > 0; i >>= 1)
       printf("%u", !!(n & i));
}

. . .

binary(65);

【问题讨论】:

  • string result = Convert.ToString(source, 2).PadLeft(6, '0');
  • @DmitryBychenko:我已经尝试过了,下划线 2 和 CS1503“无法从 int 转换为 System.Iformat.Provider”
  • @Jacob2396 source 必须是 int、byte、long 或 short 才能正常工作。如果您有无符号类型,则必须强制转换它。
  • 这能回答你的问题吗? Convert integer to binary in C#

标签: c# binary


【解决方案1】:

你可以试试Convert.ToString,例如

  int source = 61;

  // "111101"
  string result = Convert.ToString(source, 2).PadLeft(6, '0');

Fiddle

【讨论】:

  • 更改为 int 后运行良好(实际上是删除转换为字符串 )我还有一个问题。在 forloop 里面我有循环 j,在关闭 j 之后,首先我有一个 foreach 循环,就像在一个任务中一样。我用 File.AppendAllText(path, string) 将它写入一个文件。但在这个 foreach 循环后面,我想要一个新行。我尝试了 FileAppend (没有参数就不可能),streamwritter 被接受了,但它不仅没有写新行,fileappend 也没有写任何东西。我关闭了流,所以我不知道问题出在哪里。我应该使用什么。所以迭代后\n
  • @Jacob2396:请您将File.AppendAllText 问题转化为一个新的问题,其中包含代码(示例)和实际/期望的行为?从评论中获取相关数据困难。
猜你喜欢
  • 1970-01-01
  • 2012-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-22
  • 1970-01-01
  • 2021-05-18
  • 1970-01-01
相关资源
最近更新 更多