Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将字节转换为字符,例如1->';1';?_C#_Char_Byte - Fatal编程技术网

C# 如何将字节转换为字符,例如1->';1';?

C# 如何将字节转换为字符,例如1->';1';?,c#,char,byte,C#,Char,Byte,如何将字节转换为字符?我不是指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()就足够了。如果您想获得更多乐趣,请在转换之前将0的ASCII码添加到变量中: Convert

如何将字节转换为字符?我不是指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()
就足够了。如果您想获得更多乐趣,请在转换之前将
0
的ASCII码添加到变量中:

Convert.ToChar(variable + Convert.ToByte('0'));
使用Convert.ToString()执行此操作。

数字
.ToString()

请注意,您无法将
字节
转换为
字符

char
是一个字符,而byte甚至可以是三位数的值


如果要使用
LINQ
,并且您确定字节不会超过一位(10+),则可以使用:

number.ToString().Single();

假设您有变量
字节x

只需使用
(char)(x+'0')
将此用于转换

(char)(mybyte + 48); 
其中
mybyte
=0或1,依此类推

Convert.ToChar(1 + 48); // specific case for 1
当其他人给出解决方案时,我将告诉您为什么
(char)1
Convert.ToChar(1)
不起作用

当您将字节1转换为字符时,它将该
1
作为
ASCII

现在
ASCII为1!=1


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

如何将字节转换为字符?那么10+的值呢?@gdoron:当然是将字节的值作为BMP中字符的序号。问题清楚地表明我们对10+值不感兴趣。为什么
转换.ToString()
而不仅仅是
.ToString()
<代码>:)
一个
字节如何可以
为空?它是一个
结构
。在MSDN中,“此实现与Byte.ToString()相同”。
x
是一个
Byte
。正如你们所评论的,当xi大于9时会发生什么?您将得到一些ascii码。@gdoron:很抱歉使用int,但作者说它仅为0到9,所以您提到的情况不会出现occur@TuTran对在我的例子中,字节变量只是一个介于0和9之间的单个数字。@Cicada解决方案的一个变体:
byteVariable.ToString().single()
——使用
System.Linq
;如果变量超过
9
@JeppeStigNielsen谢谢,我将使用
Single()
-只是为了确定。我不敢相信在这个问题上有这么多复杂的答案,而且他们的分数比这个更高@gdoron对你的注释的评论:在我的情况下是可以的,因为我只有一个数字。因此,在我的例子中,可以这样写:
one.ToString()[0]
或@JeppeStigNielsen的提示
one.ToString().Single()
byte
System.byte
)不能有负值。这是一个
sbyte
Convert.ToChar(1 + 48); // specific case for 1