【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板2こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.18903

文字型の符号?
投稿者---匿名(2004/12/27 15:43:08)


文字型の符号とは、初心者の私が推測するに、
先頭の1ビット分が正負に対応していると思うのですが、
負の数に対応している文字コードは存在しているのですか?
私の推測が外れていたら、ご指摘下さい。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:文字型の符号? 18905 秋刀魚 2004/12/27 16:57:44
<子記事> Re:文字型の符号? 18907 匿名 2004/12/27 17:27:47
<子記事> Re:文字型の符号? 18909 monkey 2004/12/27 17:47:03
<子記事> Re:文字型の符号? 18910 匿名 2004/12/27 17:58:39


No.18905

Re:文字型の符号?
投稿者---秋刀魚(2004/12/27 16:57:44)


// sample
// WindowsXP(日本語), VC++6.0
#include <iostream>
using namespace std;

int main( int argc, char* argv[] )
{
char a = -79;
char i = -78;
char u = -77;
char e = -76;
char o = -75;

cout << a << i << u << e << o << endl;

return ( 0 );
}


この投稿にコメントする

削除パスワード

No.18907

Re:文字型の符号?
投稿者---匿名(2004/12/27 17:27:47)


>char a = -79;
こちらの[-79]を二進数で表すとどうなりますか?


この投稿にコメントする

削除パスワード

No.18909

Re:文字型の符号?
投稿者---monkey(2004/12/27 17:47:03)


int型に符号あり(signed)と符号なし(unsigned)があるように、char型にも符号あり/なしがあります。
符号修飾を省略して単に"char"と書いたときに、符号ありか符号なしのどちらになるかは処理系に依存します。
(int型の場合は、符号修飾を省略したときは必ずsignedです)

1バイトが8ビットであることを前提とすれば、char型が表しうる値の範囲は、
signed は -128〜127
unsigned は 0〜255
です。

半角片仮名の「ア〜オ」は、SJISコードでは16進数表記でB1〜B5、10進数表記だと177〜181なので、これを格納するには unsigned char型を使うのが普通だと思います。
しかし、コンピュータ内部ではビット列によって処理されますから、signed char型であっても、符号ありの場合と同じビット列になる負値を使って表すことは可能です。
秋刀魚さんのサンプルは、そのことを示されたものと思われます。


この投稿にコメントする

削除パスワード

No.18910

Re:文字型の符号?
投稿者---匿名(2004/12/27 17:58:39)


ありがとうございました。
お蔭様で解決致しました


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧