如何将字节转换为char? 我的意思并不是一个ASCII码表示。 我有类型的变量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码。
数.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();
只需用variable.ToString()
应该是足够的。 如果你想获得幻想,的ASCII代码添加0
转换之前的变量:
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()来执行此操作。
文章来源: How to convert a byte to a char, e.g. 1 -> '1'?