C#将十六进制转换为字符串

时间:2014-04-24 01:10:20

标签: c# string hex ascii

我认为我遇到了一些问题,因为我对此术语感到困惑。

我需要在前面包装一个带有垂直制表符(char)11或(char)0x0b的字符串,并在末尾包含一个(char)28或(char)0x1c。

我的一部分困惑是我不明白11和0x0b之间的区别是什么。我相信一个是ascii,一个是十六进制,但我不是正面的。所以基本上我需要做

string response = (char)0x0b + "message" + (char)0x1c;

但这似乎不起作用。

1 个答案:

答案 0 :(得分:1)

  

我的一部分困惑是我不明白11和0x0b之间的区别是什么。

没有区别。这两个代表相同的数学数字11,使用不同的基数表示它(0x0B的基数为16,11的基数为10)。

C#为垂直标签提供转义序列 - \v,因此您可以用'\v'代替(char)0x0b0x1C没有转义序列,但您可以使用十六进制转义序列来表达\x1C

修改后的代码如下所示:

string response = '\v' + message + 'x1C';

我删除了"message"周围的双引号,假设它代表了代码在返回响应之前准备的字符串变量。