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

时间:2013-03-05 20:18:47

标签: c# hex

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

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

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

这是将数字(例如,0FF的数字)添加到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";
                     }
                 }
             }
         }

我希望指令pass += b[i].ToString("X") + " ";能够生成从00h0Fh的值的前导零值

或者,将字节b中的值转换为从00FF的两个字母字符的其他方法

enter image description here

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

2 个答案:

答案 0 :(得分:42)

使用composite格式字符串:

pass += b[i].ToString("X2") + " ";

MSDN上的文档Standard Numeric Format Strings有例子。

答案 1 :(得分:1)

“ X”是格式说明符。它将数字转换为十六进制数字的字符串。

int _abc = 123456;
Console.WriteLine(_abc.ToString("X"));

这将为您提供“ 1E240”作为输出

(1E240是123456的十六进制值)