2

如何将字节转换为字符?我的意思不是 ASCII 表示。我有一个类型的变量,byte并希望它作为一个字符。

我只想进行从字节到字符的转换:
0 ->'0'
1 ->'1'
2 ->'2'
3 ->'3'
4 ->'4'
5 ->'5'
6 ->' 6'
7 ->'7'
8 ->'8'
9 ->'9'

(char)1并且Convert.ToChar(1)不工作。他们的结果是''因为他们认为1是ASCII码。

4

5 回答 5

5

号码.ToString();

one.ToString(); // one.ToString()[0] - first char -'1'
two.ToString(); // two.ToString()[0] - first char -'2'

请注意,您不能真正将 a 转换byte为 achar
char是一个字符,而 byte 甚至可以是三位数的值!


如果你想使用LINQ并且你确定字节不会超过一位(10+)你可以使用这个:

number.ToString().Single();
于 2012-05-18T08:47:59.297 回答
4

简单地使用variable.ToString()就足够了。如果您想花哨,请0在转换之前将 的 ASCII 代码添加到变量中:

Convert.ToChar(variable + Convert.ToByte('0'));
于 2012-05-18T08:47:31.243 回答
3

使用它进行转换。

(char)(mybyte + 48); 

其中mybyte= 0 或 1 等等

或者

Convert.ToChar(1 + 48); // specific case for 1

虽然其他人已经给出了解决方案,但我会告诉你为什么你的(char)1Convert.ToChar(1)不工作。

当您将字节 1 转换为 char 时,它会将其1作为一个ASCII值。

现在ASCII of 1 != 1

在其中添加 48 因为 ASCII 为 1 == 1 + 48`。0、2等类似情况。

于 2012-05-18T08:50:41.310 回答
3

假设你有变量byte x; 只需使用(char)(x + '0')

于 2012-05-18T08:49:07.610 回答
2

使用 Convert.ToString() 来执行此操作。

于 2012-05-18T08:47:54.437 回答