如何将字节转换为字符?我的意思不是 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码。
号码.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();
简单地使用variable.ToString()
就足够了。如果您想花哨,请0
在转换之前将 的 ASCII 代码添加到变量中:
Convert.ToChar(variable + Convert.ToByte('0'));
使用它进行转换。
(char)(mybyte + 48);
其中mybyte
= 0 或 1 等等
或者
Convert.ToChar(1 + 48); // specific case for 1
虽然其他人已经给出了解决方案,但我会告诉你为什么你的(char)1
和Convert.ToChar(1)
不工作。
当您将字节 1 转换为 char 时,它会将其1
作为一个ASCII
值。
现在ASCII of 1 != 1
。
在其中添加 48 因为 ASCII 为 1 == 1 + 48`。0、2等类似情况。
假设你有变量byte x;
只需使用(char)(x + '0')
使用 Convert.ToString() 来执行此操作。