パソコン困りごと相談
◇-漢字を表すには何ビット?-リン出(9/13-22:21)No.907
 ┗Re:漢字を表すには何ビット?-PEN-PEN(9/13-23:03)No.909
  ┗補足-Hamachi(9/14-01:31)No.928
   ┗Re:補足-リン出(9/14-13:29)No.943
    ┣Re:補足-Kenny(9/14-21:35)No.974
    ┗Re:補足-Hamachi(9/14-21:39)No.975

▲このページのトップに戻る
907漢字を表すには何ビット?リン出 9/13-22:21

メーカー名:ソニー
OS名:WindowsMe
パソコン名:バイオ
ソフト名:WIN
--
漢字を表すには2バイトいるというのは一般的なことなのでしょうか?
アルファベットなどはちがうのでしょうか?

また16ビットと32ビットのプログラムなどと
よく聞きますが、何がどう違って、どちらが優れているのでしょうか?

よろしくお願いします。

▲このページのトップに戻る
909Re:漢字を表すには何ビット?PEN-PEN 9/13-23:03
記事番号907へのコメント
リン出さんは No.907「漢字を表すには何ビット?」で書きました。
>OS名:WindowsMe
>パソコン名:バイオ
>ソフト名:WIN
>漢字を表すには2バイトいるというのは一般的なことなのでしょうか?
>アルファベットなどはちがうのでしょうか?

1バイト=8ビット=256 アルファベットと記号を割り当てるのに
十分な数
2バイト=8ビット×8ビット=65536 漢字(日本語)を表現するには
これくらいは要る

>
>また16ビットと32ビットのプログラムなどと
>よく聞きますが、何がどう違って、どちらが優れているのでしょうか?

16ビット=65536 32ビット=68719476736
32ビットの方が同時に沢山のことを処理できる?
プログラム(アプリケーション)の種類によってはどちらが有利とは
言い切れない。
この辺は正確なことは解りません、知っている方HELPお願いします。

>
>よろしくお願いします。


▲このページのトップに戻る
928補足Hamachi 9/14-01:31
記事番号909へのコメント
>>漢字を表すには2バイトいるというのは一般的なことなのでしょうか?
>>アルファベットなどはちがうのでしょうか?
>1バイト=8ビット=256 アルファベットと記号を割り当てるのに
>十分な数
>2バイト=8ビット×8ビット=65536 漢字(日本語)を表現するには
>これくらいは要る

 1byte=8bit=00000000〜11111111の256通り
  →256通りのものを区別することが可能→256文字を表現することが可能
 2byte=16bit=0000000000000000〜1111111111111111の65535通り
  →65535通りのものを区別することが可能→65535文字を表現することが可能

#参考までに.
# 日本語だけならとりあえずこれで十分と見なされていましたが,実際には
#森鴎外の"鴎"や高田の"高"などPCでは表現できない文字が2byteではまだまだ
#あります.ですからさらに文字コードを拡張して地球上で扱われている全ての
#文字をPC上で扱えようとするプロジェクトがあります.これがUNICODEです.

>>また16ビットと32ビットのプログラムなどと
>>よく聞きますが、何がどう違って、どちらが優れているのでしょうか?
>16ビット=65536 32ビット=68719476736
>32ビットの方が同時に沢山のことを処理できる?
>プログラム(アプリケーション)の種類によってはどちらが有利とは
>言い切れない。

 プログラムというよりもCPUに依存します.16bitCPUは16bit同士の計算まで
しか出来ません.32bitの計算を行うには16bitの計算を繰り返す必要があります.
これに対して32bitCPUは32bitの計算を一回で行うことが出来ます.誤解を承知であ
えて簡略化すれば,二桁の数同士の足し算を行うプログラムを書くと,
16bit版
1. 一桁目同士を足し算する
2. もし繰り上げがあればそれを記憶する
3. 二桁目同士を足し算する
4. 2で繰り上げがあったならば二桁目の計算結果にそれを足す
5. もし繰り上げがあればそれを記憶する
6. 結果を出力する
32bit版
1. 二桁の数を足し算する
2. 結果を出力する

 CPUの処理というのは全て計算によって行われますから,このように計算能力に
優れた32bitCPU用のプログラムの方が優れているといえます.

#詳しい人の突っ込み希望(ぉ

▲このページのトップに戻る
943Re:補足リン出 9/14-13:29
記事番号928へのコメント
お二人ともありがとうございます。

だいたい漢字の表現には、2バイトで足りるということは分かったのですが、
この2バイトというのは一般的な数字と考えて良いのでしょうか?
C言語なら何バイト、フォートランなら何バイトとる
というものではないと考えても良いのでしょうか?


もう一つの、16ビットと32ビットの話ですが、
〜ビットはCPUによるとの事でしたが、OSには関係ないのでしょう?
WIN95なら16ビットしか使えないとか、2Kなら両方OKなどです。
また、16ビット用CPUのプログラムは32ビット用CPUでは動かせないのでしょうか?

質問が多くなってすみません、よろしくお願いします。

▲このページのトップに戻る
974Re:補足Kenny 9/14-21:35
記事番号943へのコメント
リン出さんは No.943「Re:補足」で書きました。
>お二人ともありがとうございます。
>
>だいたい漢字の表現には、2バイトで足りるということは分かったのですが、
>この2バイトというのは一般的な数字と考えて良いのでしょうか?
>C言語なら何バイト、フォートランなら何バイトとる
>というものではないと考えても良いのでしょうか?

一般的にはそれでいいです。
では一般的でないものについては主に以下のものになります。
1:他国の言語(Windowsの英語版など)等でもフォントを導入するだけで
  使用できるように(プログラムのパッチ当てなどをせずに)全世界で
  統一された文字コード(ユニコードといいます)を使用する場合
2:特殊な日本語ワープロソフトで使用されている文字コード
  (名前は忘れましたがOSは純和製OSのTRONを使用しています)
ただし1についてはOSの開発に飛躍的な進化をもたらしたため、
一般的なものになりつつあります。

>もう一つの、16ビットと32ビットの話ですが、
>〜ビットはCPUによるとの事でしたが、OSには関係ないのでしょう?

OSはCPUのビットに応じて設計されますので深い関連性があります。
私の知っているもの(マイクロソフト製)では以下のOSがあります
 8ビット  MSX-DOS
16ビット  MS-DOS(一部のバージョンで32ビットを部分使用)
       Windows3.1(システムの一部に32ビットを使用)
32ビット  Windows95・98・ME(システムの一部に16ビットを使用)
       WindowsNT・2000

>WIN95なら16ビットしか使えないとか、2Kなら両方OKなどです。
>また、16ビット用CPUのプログラムは32ビット用CPUでは動かせないのでしょうか?

Windowsに限ってのことであれば条件付で動かせますといっておきましょう。
ただし条件はバージョン(系列?)によって多少違うのでここでは割愛します。

おまけ
インテルのCPUは80386以降で用意してある仮想86モードを使用することで
16ビットのプログラムを動かすことができます。
インテルの製作したCPUでビット分け(?)すると以下のようになります。
 8ビット  8080(違ってるかも)
16ビット  8086・80186・80286
32ビット  80386・80486・Pentium全シリーズ

追伸
説明の中で多少間違いがあると思いますが、そこまで精度を要求していないと
思いますので、これでご勘弁を。

▲このページのトップに戻る
975Re:補足Hamachi 9/14-21:39
記事番号943へのコメント
>だいたい漢字の表現には、2バイトで足りるということは分かったのですが、
>この2バイトというのは一般的な数字と考えて良いのでしょうか?
>C言語なら何バイト、フォートランなら何バイトとる
>というものではないと考えても良いのでしょうか?

 いまいち質問の意図が解かりません。C言語であろうとフォートランで
あろうと文字コードは一緒なのですが・・・。(例えばJISコード3021ならば
漢字の"亜"を示すのはプログラム言語に限らず共通のことです。そもそも、
JISコードで規定されているので、プログラムはその規定に添って日本語を
扱うことが求められています。当然プログラミング言語もそうです。) そう
いうことじゃないのかな?

>〜ビットはCPUによるとの事でしたが、OSには関係ないのでしょう?
>WIN95なら16ビットしか使えないとか、2Kなら両方OKなどです。

 こっちは私もよく解りませんが、OSの作りによると思います。もともと16bit
OSであったWin3.1がWin32sというドライバを導入して32bitプログラムを走らせる
ことが出来たので、32bitCPU上で動いている以上はOSの作りによるでしょう。

>また、16ビット用CPUのプログラムは32ビット用CPUでは動かせないのでしょうか?

 基本的にはOSさえ対応していれば動くでしょう。


#なんとなくx86アーキテクチャという垣根を越えた特殊な環境での話のような
#気がするのですが、そうなると私の知識レベルを超えちゃいます(汗

#誰か間違いがあったら指摘してください(汗