ToString("X")产生单个数字的十六进制数

Use*_*r.1 22 c# hex

我们写了一个粗略的数据范围.

(我们发现的免费软件终端程序无法跟上蓝牙速度)

结果还可以,我们将它们写入逗号分隔文件,以便与电子表格一起使用.最好看看HexTerateBox中的十六进制值排列在漂亮的列中,而不是它现在的样子(附加屏幕上限).

这是将数字(例如,来自0to的数字FF)添加到RichTextBox中的文本的例程.

  public void Write(byte[] b)
         {
             if (writting)
             {
                 for (int i = 0; i < b.Length; i++)
                 {
                     storage[sPlace++] = b[i];

                     pass += b[i].ToString("X") + " ";  //// <<<--- Here is the problem

                     if (sPlace % numericUpDown1.Value == 0)
                     {
                         pass += "\r\n";
                     }
                 }
             }
         }
Run Code Online (Sandbox Code Playgroud)

我想办法为指导pass += b[i].ToString("X") + " ";,以价值观从产生前导零00h0Fh

或者一些其他的方式把字节值b分为两个字母字符从00FF

在此输入图像描述

左边的数字FF 40 0 5,排列整齐,整齐,因为它们是相同的.一旦我们遇到任何数据差异,列就会消失,数据变得非常难以通过人类观察来阅读.

Ode*_*ded 45

使用复合格式字符串:

pass += b[i].ToString("X2") + " ";
Run Code Online (Sandbox Code Playgroud)

有关MSDN,标准数字格式字符串的文档有示例.

  • @ User.1`0.ToString("X2")`产生'00`."2"表示输出多少个字符(填充"0"). (4认同)
  • 我得到了这个答案,但它没有解决使用非等宽字体的问题,例如Consolas或Courier New. (2认同)