如何将字节转换为char?我不是指ASCII表示。
我有一个byte
类型的变量,并希望它作为一个字符。
我想跟随从byte到char的转换:
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码。
答案 0 :(得分:5)
号码.ToString();
one.ToString(); // one.ToString()[0] - first char -'1'
two.ToString(); // two.ToString()[0] - first char -'2'
请注意,您无法真正将byte
转换为char
char
是一个字符,而字节甚至可以是三位数值!
如果您想使用LINQ
,并且您确定该字节不会超过一位数(10+),您可以使用此字段:
number.ToString().Single();
答案 1 :(得分:4)
只需使用variable.ToString()
即可。如果您想获得乐趣,请在转换之前将0
的ASCII代码添加到变量:
Convert.ToChar(variable + Convert.ToByte('0'));
答案 2 :(得分:3)
假设你有变量byte x;
只需使用(char)(x + '0')
答案 3 :(得分:3)
将此用于转换。
(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
值。
现在{{1}}。
在其中添加48因为ASCII = 1 == 1 + 48`。 0,2等的类似情况。
答案 4 :(得分:2)
使用Convert.ToString()执行此操作。