将48添加到字符串编号

时间:2012-05-30 11:09:36

标签: c#

我在C#中有一个字符串,如下所示:

string only_number;

我为其指定了值= 40

当我检查only_number[0]时,我得到52
当我检查only_number[1]时,我得到48

为什么在当前位置为一个角色添加48?请建议

5 个答案:

答案 0 :(得分:8)

字符串基本上是char[]。所以你看到的是char 4和0的ASCII值。

证明:4到0之间的差异= 52到48之间的差异。

因为它是一个字符串所以你没有分配它。相反,你分配了它"40"

答案 1 :(得分:4)

您看到的是ASCII代码'4'和'0'。

答案 2 :(得分:3)

它没有为角色添加48。你看到的是字符代码,数字的字符在Unicode中以48开头:

'0' = 48
'1' = 49
'2' = 50
'3' = 51
'4' = 52
'5' = 53
'6' = 54
'7' = 55
'8' = 56
'9' = 57

字符串是一系列char值,每个char值是一个16位整数,基本上代表Unicode字符集中的代码点。

当您从only_number[0]读取时,您获得的char值为'4',其字符代码为52.所以,您所做的就是从中读取一个字符字符串,然后在显示之前将其转换为整数。

所以:

char c = only_number[0];
Console.WriteLine(c); // displays 4

int n = (int)only_number[0]; // cast to integer
Console.WriteLine(n); // displays 52

int m = only_number[0]; // the cast is not needed, but the value is cast anyway
Console.WriteLine(m); // displays 52

答案 3 :(得分:2)

您正在访问此字符串,并且正在为您的两个字符“4”和“0”输出ASCII字符代码 - 请参阅此处:

http://www.theasciicode.com.ar/ascii-control-characters/null-character-ascii-code-0.html

答案 4 :(得分:1)

stringarray的{​​{1}},所以,那就是为什么你收到这些结果,它基本上显示{4}和'0'的chars