

No.1ベストアンサー
- 回答日時:
Cの char は、実は、整数型の一種だからです。
「文字(コード)を表現するのに十分なサイズ」の整数型です。
あと、char の範囲が、-128 ~ 127 かどうかは、実際には、「お使いのコンパイラはそうなっている」というだけで、Cでは、char が、
符合付き:多くの処理系では -128 ~ 127
符合無し:多くの処理系では 0 ~ 255
のいずれとして扱うかは、「処理系依存(コンパイラが決めればいい)」ということになっています。
※ついでにいえば、符合の有無を明示した signed char と unsigned char は、char とは別の型として扱われています。
というわけで、char は、(文字の表現に適したデータサイズなので)文字として扱うのが便利なような道具(関数など)が準備されていますが、本質的なレベルでは、整数として扱われることは、時々意識すると良いと思います。
ご回答ありがとうございました。
きむづいですが!?
いろんな表現方法があることは分かります。
暇暇理解を深めていきたいと思います。
今後ともよろしくお願いいたします。
No.3
- 回答日時:
c/c++ では文字型というのは整数型の一つで、整数と文字を区別しません。
整数の 65 は文字の A です。32 は空白(スペース)です。
文字型と整数型を明確に区別する言語もあります。
あまり一般的に「コンピュータでは」などと考えないほうがよいですよ。
コンピュータでは文字を文字コードに対応させ、内部的には整数値で
扱っていますが、それはあくまでコンピュータの実装上に話。
Cのような抽象度の低い言語ではそれがあからさまに見えてしまいますが、
それをプログラミング言語でどう扱うかは別に話です。
ご回答誠にありがとうございました。
以下ご回答を参考にさせていただきました。
「Cのような抽象度の低い言語ではそれがあからさまに見えてしまいます」
なるほどですね
とゆうことは
C言語の欠点を私は発見したということでよろしいでしょうか!^^
冗談はさておき
疑問に思ったことは!すべて質問させていただきたいと思いますが!
今後ともよろしくお願いいたします

No.2
- 回答日時:
今のところ、デジタルコンピュータの中では、「数値」しか直接には取り扱うことができません。
ついでにいえば、「負の数」も、直接取り扱うことはできません(これは、ちょっと語弊がありますが)
おおざっぱに言えば、正の整数しか扱うことができませんが、それでは不便なので、
「正の整数で負の数を表すにはどうするのか(多くの場合、2の補数表現というのを使います)」
「正の整数で文字を表すにはどうするのか(文字コードというものを介します)」
ということが考えられたのです。
だから、char についていえば、
・多くの処理系では 8ビットである。
・8ビットでは、0 ~ 255 までを表現することができる(正の整数として)
・負の数も表現できるとすれば、2の補数表現を用いて、-128 ~ 127 を表現できる
・文字を表すためには、「文字コード」を表しているとして、対応する文字と見なす
ということです。
なので、ある日本の処理系では、
char 型の変数に 177 という「数値」が格納されていたとしたら、
「符合を考えない」数値表現だとすれば、177 ですし、
「符合を考慮する」整数表現だとすると、-79 ですし、
「文字コードを表している」とすると、(半角の)ア です。(文字コードの選び方によって変わる)
わかりにくければ、当面、char は半角1文字を表すと考えていても、まあ、大きな問題にはならないと思います。
ごかいとまことにありがとうございました。
ご回答ありがとう
「2の補数表現というのを使います」
2の補数 すごい これは何時かは理解しないとプログラム
は書けないだろうから、現在はさっぱりわかりませんが、暇暇
理解したいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/02/18 11:30
- Excel(エクセル) エクセルの数式について教えてください。 2 2023/03/04 09:54
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- その他(コンピューター・テクノロジー) googleスプレッドシートでカッコ内の文字数をカウントしたい 1 2023/01/17 15:52
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/15 08:30
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Excel(エクセル) エクセルの表について 3 2023/04/14 18:00
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- Excel(エクセル) 条件に合った数値の合計を表示させたい関数と条件指定の方法 3 2023/05/13 16:07
- Word(ワード) Wordの表中の文字を選択した時の白黒反転の違い 1 2023/04/25 12:13
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CStringからchar*への型変換に...
-
入力された文字列の中の数字を...
-
char*を初期化したいのですが
-
char型にint型の数値を代入する。
-
C言語にて構造体のメンバがNULL...
-
C++17で、unsigned char * 配列...
-
C言語のintとcharの違いってな...
-
エクセルのMID関数は、C言語では?
-
C言語のプログラムについてです
-
char 文字列型 の表現範囲が-12...
-
csvファイルをfscanfで読み込む...
-
コマンドライン引数 *argv[]は...
-
VC++ char[10]へのCString値の代入
-
ポインタで詰まりました;
-
文字列str内の全ての数字を...
-
c言語でポインタ変数を用いた配...
-
文字型配列に格納した空白の切捨て
-
共用体について
-
C言語:小文字を大文字に変換す...
-
fgetc( )の戻り値はなぜ整数??
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CStringからchar*への型変換に...
-
char*を初期化したいのですが
-
C言語のintとcharの違いってな...
-
char型にint型の数値を代入する。
-
C言語にて構造体のメンバがNULL...
-
fgetc( )の戻り値はなぜ整数??
-
char 文字列型 の表現範囲が-12...
-
fstream型オブジェクトを関数の...
-
C++17で、unsigned char * 配列...
-
DWORDとcharの変換
-
文字列内の数字削除
-
new charとnew char[N]の違いは?
-
文字型配列に格納した空白の切捨て
-
C++Builder 2009 テキスト...
-
csvファイルをfscanfで読み込む...
-
文字列の途中から途中までを抽出
-
[C] 構造体メンバーのカンマ区...
-
エクセルのMID関数は、C言語では?
-
小数点入りの文字列をfloat型に...
-
wsprintf( ポインタ , "%d" , "...
おすすめ情報
ご回答ありがとうございました。
文字は人間が見れば、文字は文字
数字、正数0123・・・負の数-1 -2 -3・・・など数字であり
ます。
しかし、コンピュータの世界では文字であろうが
記号、画像であろうが、全てデジタル即ち数字の世界なので
”整数型”が成立する。と!
私なりに勝手に解釈してしまいました。
間違いございませんでしょうか!?
よろしくお願いいたします。