teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

修正

2020/08/11 12:45

投稿

amiya
amiya

スコア1218

answer CHANGED
@@ -8,7 +8,8 @@
8
8
  `'0'`という数値とは何か?というと、
9
9
  コンピュータは文字というものを数値として扱っている事を理解する必要があります。
10
10
  いわゆる文字コードというもので、文字ごとに一文字ずつ、どの文字は何番というふうに数値が割り振られています。
11
+ C#のchar型はUTF-16という文字コードが使われており、
11
- アスキーコードであれば、`'0'`には、`48`が、`'9'`には`57`が割り当てられています。
12
+ `'0'`には、`48`が、`'9'`には`57`が割り当てられています。
12
13
  つまりは、
13
14
  `if (cap >= '0' && cap <= '9') `
14
15
  これは、
@@ -17,7 +18,7 @@
17
18
  これであれば、ただの数値の比較ですので簡単だと思います。
18
19
 
19
20
  実際の数値が何になるか?またその間に何があるかは、文字コードによって異なる可能性があります。
20
- 上述のようなアスキーコードであれば、48~57番まで、アスキーコード表を見れば
21
+ 上述のようなUTF-16であれば、48~57番まで(16進数表記では`0030-0039`)をコード表で確認すると
21
22
  `0123456789`の各文字となります。
22
23
 
23
24
  こんな風に中身の動きから考えてゆくとよいかと思います。