アプリ版:「スタンプのみでお礼する」機能のリリースについて

char 文字列型 の表現範囲は-128~127だそうです。・・文字を表する範囲のマイナスがついていますが、数字だったら-1 -2 -3 と流れていくのでわかります。
 文字の種類を+127の範囲で表現できる意味は分かりますが、-128までの範囲で文字の種類を
 表現する意味が分かりません!?
どういった表現方法でしょうか?(考えた方でしょうか?)
 よろしくお願いいたします。

質問者からの補足コメント

  • ご回答ありがとうございました。
      文字は人間が見れば、文字は文字
     数字、正数0123・・・負の数-1 -2 -3・・・など数字であり
    ます。
     
    しかし、コンピュータの世界では文字であろうが
     記号、画像であろうが、全てデジタル即ち数字の世界なので
     ”整数型”が成立する。と!
    私なりに勝手に解釈してしまいました。
    間違いございませんでしょうか!?
     よろしくお願いいたします。

      補足日時:2015/03/10 20:53

A 回答 (3件)

Cの char は、実は、整数型の一種だからです。


「文字(コード)を表現するのに十分なサイズ」の整数型です。

あと、char の範囲が、-128 ~ 127 かどうかは、実際には、「お使いのコンパイラはそうなっている」というだけで、Cでは、char が、
符合付き:多くの処理系では -128 ~ 127
符合無し:多くの処理系では 0 ~ 255
のいずれとして扱うかは、「処理系依存(コンパイラが決めればいい)」ということになっています。

※ついでにいえば、符合の有無を明示した signed char と unsigned char は、char とは別の型として扱われています。

というわけで、char は、(文字の表現に適したデータサイズなので)文字として扱うのが便利なような道具(関数など)が準備されていますが、本質的なレベルでは、整数として扱われることは、時々意識すると良いと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
きむづいですが!?
 いろんな表現方法があることは分かります。
暇暇理解を深めていきたいと思います。
 今後ともよろしくお願いいたします。

お礼日時:2015/03/14 15:33

c/c++ では文字型というのは整数型の一つで、整数と文字を区別しません。


整数の 65 は文字の A です。32 は空白(スペース)です。

文字型と整数型を明確に区別する言語もあります。
あまり一般的に「コンピュータでは」などと考えないほうがよいですよ。

コンピュータでは文字を文字コードに対応させ、内部的には整数値で
扱っていますが、それはあくまでコンピュータの実装上に話。

Cのような抽象度の低い言語ではそれがあからさまに見えてしまいますが、
それをプログラミング言語でどう扱うかは別に話です。
    • good
    • 0
この回答へのお礼

ご回答誠にありがとうございました。
 以下ご回答を参考にさせていただきました。 
「Cのような抽象度の低い言語ではそれがあからさまに見えてしまいます」
 なるほどですね
 とゆうことは
 C言語の欠点を私は発見したということでよろしいでしょうか!^^
 冗談はさておき
 疑問に思ったことは!すべて質問させていただきたいと思いますが!
今後ともよろしくお願いいたします

お礼日時:2015/03/13 19:06

今のところ、デジタルコンピュータの中では、「数値」しか直接には取り扱うことができません。


ついでにいえば、「負の数」も、直接取り扱うことはできません(これは、ちょっと語弊がありますが)

おおざっぱに言えば、正の整数しか扱うことができませんが、それでは不便なので、
「正の整数で負の数を表すにはどうするのか(多くの場合、2の補数表現というのを使います)」
「正の整数で文字を表すにはどうするのか(文字コードというものを介します)」
ということが考えられたのです。

だから、char についていえば、
・多くの処理系では 8ビットである。
・8ビットでは、0 ~ 255 までを表現することができる(正の整数として)
・負の数も表現できるとすれば、2の補数表現を用いて、-128 ~ 127 を表現できる
・文字を表すためには、「文字コード」を表しているとして、対応する文字と見なす
ということです。

なので、ある日本の処理系では、

char 型の変数に 177 という「数値」が格納されていたとしたら、
「符合を考えない」数値表現だとすれば、177 ですし、
「符合を考慮する」整数表現だとすると、-79 ですし、
「文字コードを表している」とすると、(半角の)ア です。(文字コードの選び方によって変わる)

わかりにくければ、当面、char は半角1文字を表すと考えていても、まあ、大きな問題にはならないと思います。
    • good
    • 0
この回答へのお礼

ごかいとまことにありがとうございました。
 ご回答ありがとう
「2の補数表現というのを使います」
 2の補数 すごい これは何時かは理解しないとプログラム
は書けないだろうから、現在はさっぱりわかりませんが、暇暇
 理解したいと思います。

お礼日時:2015/03/14 15:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!