No.6ベストアンサー
- 回答日時:
★文字コードについて
>文字って数字で表現できるのでしょうか?
↑
この表現は
『文字列って数値でも表現できるのでしょうか?』
という事ですよね。多分。
・そうなるとコンピュータで『文字』を表現するにはどうなのか?
という事にも繋がりますね。
コンピュータでは『数値』を扱うようになっているのためそのままでは
文字を扱えません。そこで『文字』に番号を振ってその番号で処理する
ような仕組みになります。このときの番号を『文字コード』と言います。
・『文字コード』にはたくさんの種類があります。
代表的なものとして
ASCIIコード
JISコード
シフトJISコード
EUC-JPコード
Unicodeコード
EBDICコード
などがあります。詳しくはネット検索して下さい。または次のリンクをどうぞ。
http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97% …
・今回は ASCII コードを代表して説明します。
ASCII コードは半角文字のことで数字(0-9)、英大文字(A-Z)、英小文字(a-z)や
記号などがあります。あと日本では半角カタカナも含まれます。→ANK コード
このコード体系では
'0'という文字は 0x30(48) という数値
'A'という文字は 0x41(65) という数値
'a'という文字は 0x61(97) という数値
'!'という文字は 0x21(33) という数値
と決められています。
※()内は10進数での数値を表す。
・上記のことを踏まえると
char name[] = "NaNaNa_sun";
という文字列は char 型の配列で次のようになります。
name[0] = 'N';
name[1] = 'a';
name[2] = 'N';
name[3] = 'a';
name[4] = 'N';
name[5] = 'a';
name[6] = '_';
name[7] = 's';
name[8] = 'u';
name[9] = 'n';
name[10] = '\0';
※'N'というのは文字定数(リテラル)の表現です。
↓
上記の文字列を文字定数ではなく数値(16進数)で表現すると
name[0] = 0x4E;
name[1] = 0x61;
name[2] = 0x4E;
name[3] = 0x61;
name[4] = 0x4E;
name[5] = 0x61;
name[6] = 0x5F;
name[7] = 0x73;
name[8] = 0x75;
name[9] = 0x6E;
name[10] = 0x00;
とすることができます。ちょっと文字列のイメージができませんね。
そこで普段は文字コード'N'や'a'で表現するのが一般です。
・C 言語では文字列をダブルクォーテーション文字で囲んで "NaNaNa_sun" と
表現する決まりになります。1文字だけなら char moji = 'A'; ともします。
・以上。簡単ですが文字列と文字コードでした。
参考URL:http://ja.wikipedia.org/wiki/%E6%96%87%E5%AD%97% …
かなり丁寧に書いてくれましたね。ひそかに(かはわからないけど)私の名前で作ってくれて。
とってもわかりやすかったです。
これで、また一歩プログラマーへの道が開けた(とっても小さいけどね)
回答ありがとうございました。
No.4
- 回答日時:
あれ?
私の問題から生じた疑問ですかね?
char型は、数値変数で1バイトの符号付き数値を扱えます。値は-128~127です。これはOKですか?
しかしながら、文字を代入することができます。
char a;
a='B';
ですね。
これは、コンピュータ内部で文字を数値コードで扱っているからです。
これが文字コード(文字の数値コード)表です。
http://e-words.jp/p/r-ascii.html
ですから、こんなこともできます。
char a,b;
a='B';
b=66;
printf("a=%c b=%c\n",a,b);
printf("a=%d b=%d\n",a,b);
を実行すると
a=B b=B
a=66 b=66
と表示されます。
最後に「文字の扱い方」を参考にしてください。
http://homepage3.nifty.com/mmgames/c_guide/14-01 …
そうですけど・・・これは使わないのかな?
けど、こういう感じじゃないととけないような・・・というかどう考えても僕じゃ無理だったんです。
使い方まで教えてくれて感謝です。感激です。雨あられです。
これで挑戦してみます。
では、また問題を出題している方に何か書き込むかもしれないので、そのときはよろしくお願いします。
回答ありがとうございました。
No.3
- 回答日時:
> 文字って数字で表現できるのでしょうか?
微妙な表現ですね。まずは質問の意味から考えてみましょう。
「文字」というのは、#2の回答にもあるように図形のことですね。「数字」というのは「数」を表す「文字」のことです。
ということは、
0
0 0
00000
0 0
「A」を「0」を使って上のように表現できるか? という意味になります。上で出来ているように、結論をいえば出来ますが、質問の意味は本当にこういうことなのでしょうか?
いいえ違います・・・僕の書き方が悪かったようです。
そういう解釈の仕方もあるということに気づかなかった。これはこれで勉強になりました。
回答ありがとうございました。
No.2
- 回答日時:
>文字って数字で表現できるのでしょうか?
数字で表現しています。
私の知る限り、コンピュータは文字を直接扱えません、数字に直して(キーボードコントローラなどで変換)入力し、内部では数字で扱い、活字式タイプライターなどに出力する時に数字を文字に変換します、ディスプレー、またはレーザプリンタ、インクジェットプリンタに出力の時は数字を文字の形の図形に変換し(図形も数字です)図形を表示しています。
これも別の分野で勉強になります。
図形も数字ですか・・・パソコンって計算機って意味というのは、まんざらではないですね。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Vba Replace関数について教えて...
-
CSSが全く分かりません、お助け...
-
プログラミング 素数か素数では...
-
c言語の問題の説明、各所ごとに
-
DLLファイルの逆コンパイラにつ...
-
逆コンパイルと逆アセンブルの...
-
C言語について。
-
C#でログファイルにファイルパ...
-
終端記号、非終端記号とは
-
VisualStudioでC++クラスを追加...
-
int16_t の _t は何?
-
Cのオブジェクトファイルの逆ア...
-
C言語の関数のextern宣言
-
DNCL(共テ用プログラミング言語...
-
C#でTreeViewのCheckBoxのサイ...
-
CPUが16bitでも32bitOSでコンパ...
-
C言語 列挙型(enum型)変数について
-
コマンドプロンプトについて。
-
visual studioでフォームデザイ...
-
Windows Formアプリからコンソ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SUN BBSの改造方法
-
tracert ができない原因
-
CGI上にBASIC認証のIDを表示さ...
-
perlで書いたcgiでsqliteの使い...
-
【ASP.NET MVC】フォームヘルパ...
-
【CGI】画像の表示の仕方【Mini...
-
チェックボックスでのor検索
-
Windows7でVBScriptによるネッ...
-
Perlでuse socketを使用してフ...
-
入力フォームに全角・半角スペ...
-
wordの数式について 定積分を書...
-
掲示板(kentさんの所のsunbbs...
-
ラジオボタンが両方とも選択で...
-
「value」に2つの値をセットす...
-
チェックボックスの返す値
-
[HTML]プルダウンメニューの横...
-
WEBページを強制的に横画面で見...
-
FORMのselectの選択肢を最初か...
-
VB.net データーグリッドビュー...
-
MSPゴシックで、一番幅を取る文字
おすすめ情報