2

私は次のようなC#の文字列を持っています:

string only_number;

私はそれに値を割り当てました=40

確認するonly_number[0]と取得します52
確認するonly_number[1]と取得します48

なぜ現在の位置のキャラクターに48を追加しているのですか?提案してください

4

5 に答える 5

8

文字列は基本的にchar[]. したがって、表示されているのは、char 4 と 0 の ASCII 値です。

証明: 4 と 0 の差 = 52 と 48 の差。

これは文字列なので、40 を割り当てませんでした。代わりに を割り当てました"40"

于 2012-05-30T11:11:09.007 に答える
4

表示されているのは、'4' と '0' の ASCII コードです。

于 2012-05-30T11:11:43.477 に答える
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値は基本的に Unicode 文字セットのコード ポイントを表す 16 ビット整数です。

から読み取ると、 の値がonly_number[0]得られ、その文字コードは 52 です。つまり、文字列から文字を読み取り、それを整数に変換してから表示します。char'4'

そう:

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
于 2012-05-30T11:22:27.957 に答える
2

この文字列にアクセスすると、2 つの文字「4」と「0」のそれぞれの ASCII 文字コードが出力されます。こちらを参照してください。

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

于 2012-05-30T11:11:47.640 に答える
1

stringは のarraycharsあるため、これらの結果を受け取った理由は、基本的ASCIIに '4' と '0' の を表示することです。

于 2012-05-30T11:13:32.180 に答える