将 48 添加到字符串编号
本文关键字:字符串 编号 添加 | 更新日期: 2023-09-27 18:35:48
我在 C# 中有一个字符串,如下所示:
string only_number;
我给它分配了一个值 = 40
当我检查only_number[0]
时,我得到52
当我检查only_number[1]
时,我得到48
为什么要在当前位置为角色添加 48?请建议
字符串
基本上是char[]
。所以你看到的是字符 4 和 0 的 ASCII 值。
证明:4 和 0 之间的差异 = 52 和 48 之间的差异。
由于它是一个字符串,因此您没有为其分配 40。相反,您将其分配给"40"
。
您看到的是 ASCII 代码"4"和"0"。
它不是在字符中添加 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
您正在访问此字符串,它正在输出两个字符"4"和"0"中每个字符的 ASCII 字符代码 - 请参阅此处:
http://www.theasciicode.com.ar/ascii-control-characters/null-character-ascii-code-0.html
string
是chars
的array
,所以,这就是你收到这些结果的原因,它基本上显示"4"和"0"的ASCII
。