• ベストアンサー

コンピューターのデーターの扱いについて…

コンピューターは文字や数値を 0または1だけから成るデータと して扱うようですが… 具体的にどういうことなのでしょうか? 2進数やビットの基本的な説明も できれば宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#808
noname#808
回答No.1

コンピュータには言葉など無いために、 人間のように言葉を使って情報を扱う事は出来ません。 全ての情報を数字だけであらわします。 特定の数字に特定の文字を割り当てているのです。 しかし、人間のように0~9までの数字を 扱うのではなく、0か1かの2通りの数字しか、 コンピュータでは扱えません。 何故2通りだけかというと、コンピュータにとって、 電流を流すか流さないか、すなわちスイッチがONかOFFか という事しか認識できないため、それに文字を ON→1、OFF→0という具合に割り当てた場合、 0か1か、という2種類のみの数字しか認識できないのです。 スイッチ1個だけでは、ONかOFFかという2種類の 情報しか扱えません。 そこでこのスイッチを8個を集めて一単位としました。 すると2の8乗=256通りの情報が扱えるようになります。 スイッチ1個分の、ONかOFFか(0か1か)の2通りしか扱えない 単位を1ビットといいます。それが8個集まって8ビットですが その8ビットは1バイトになります。        0→0か1かの2通り(1ビット) 00000000→8個単位で256通り(8ビット=1バイト) ※0一個をスイッチ1個と考えて下さい。  0の部分は0か1かという事です。 10進数では0、1,2,3,4、・・となりますが 2進数では以下のようになります。 0 → 00000000 (スイッチ全てOFF) 1 → 00000001 (1個目のスイッチがON) 2 → 00000010 (2個目のスイッチがON) 3 → 00000011 (1、2個目のスイッチがON) 4 → 00000100 (3個目のスイッチがON) 5 → 00000101 (1、3個目のスイッチがON)

noname#38841
質問者

お礼

アドバイスありがとうございました。 よく分かりました。

その他の回答 (2)

  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

○文字について 文字は、「文字コード」としてそれぞれの文字に固有の番号を付けて管理しています。例えば、"A"って文字は65番だとか、決まってるわけです。 んで、その数字を2進数に変換してやれば、0と1で文字が表現できるわけです。 ですが、A(65)を2進数で表すと100001ですしz(122)なら1111010と、文字ごとに桁数が異なってしまいます。 これでは文字をいくつも並べたときに区切り位置が分からなくなって困るので、8桁を1単位として、足りない分は0で埋めるってお約束があるのです。 "A"なら、00100001,"z"なら01111010ですね。この、「8桁で一纏まり」のことを「バイト」って言います。それに対して個々の0/1のことを「ビット」って言います。 8ビット=1バイト です。 文字コードには、国や言語、使用するOSなどによっていろんな種類があり、文字コードごとにどの文字が何番かっていうのは異なります。(といっても、アルファベットや数字に関しては、どの文字コードでもほぼ共通ですが。) 英語圏で使われるほとんどの文字コードは、一文字=1バイトですが、日本語を含む漢字圏の言語では、2バイト(16桁の2進数)を使用して1文字を表現しています。(1バイトでは最大256文字までしか扱えませんが、2バイト使えば、最大65536文字を扱うことが出来ます。) 世界規模で普及の進む「ユニコード」も、1文字=2バイトです。 ○数字について 文字よりも数字を説明する方が難しいです。例えば「100」という数字を表現するのにも、幾つもの方法があるのです。 正の整数のみを扱う方法、正負の符号付きの整数を扱う方法、小数点つきの数を扱う方法などがあり、それぞれについて、2バイトで一つの数を表す方法や、4バイトを使用する方法などがあります。 兆とか京といった大きな数を誤差無く扱うために考え出された方法とかもあります。自分で新たな「方法」を考え出してもいいです。 とりあえずここでは、「101」を1バイトの符号無しの整数として扱う方法を書いてみます。 101 = 64 + 32 + 4 + 1 つまり、2^7 + 2^6 + 2^2 + 2^0 ですね。(^ はべき乗を表す。2^7は2の7乗、2の0乗は1) んで、それを 01100101 っていうふうに表すわけです。左から右に向かって、2^8が0コ + 2^7が1コ + 2^6が1コ + 2^5が0コ + ・・・ + 2^0が1コ。です。10進数を2進数にするときのやり方と一緒ですね。 ○日付 これも、様々な方法があります。1900年1月1日からの経過秒数で日付/時刻表現する方法とか。 ○絵について 絵も数字です。絵は色のついた点の集合として考え、色は、その色を表す番号で与えられます。赤なら255番とか。 色を三原色(赤/緑/青)に分解して、赤/緑/青の各色の強さで表すことも多いですね。 ○音について 音も数字で表現できます。例えば、1秒間に流れる音を表すときは、その音を44100個の細切れにします。んで、その瞬間瞬間の音の大きさを数値にして記録します。 再生するときは、その数値に応じた大きさでスピーカを振動させます(1秒間に44100回)。するとCDクオリティの音がスピーカから沸いて出るわけです。

noname#38841
質問者

お礼

アドバイスありがとうございました。 よく分かりました。

  • msystem
  • ベストアンサー率42% (79/186)
回答No.2

ビット、バイトの説明はquowiさんがされているので、文字の件を・・・ quowiさんがおっしゃっているように、コンピュータはすべて2進数の数字でデータを表します。 ですが実世界では、数値以外にも文字・記号・画像・映像などなどいろいろな形のデータが存在します。このようなデータをコンピュータで扱うにはどうしても2進数に直さなければ扱うことができません。 そこでコード・フォーマットなどということ決めて、変換しています。 たとえば、簡単にするためにひらがなを考えます。 ひらがなを2進数で表すためには、まず、ひらがなが何種類あるかを考えます。仮に50個だとします。(数えてないです。すいません) すると、2進数6桁で0から63まで数えれますので6ビットあれば表せることになります。ですが、コンピュータは8ビット(1バイト)ごとにデータを扱えるのが一般的ですので、1バイトで考えます。 ここからは、単なる決め事です。 たとえば次のようにします。 「あ」→00000000(0) 「い」→00000001(1)  ・  ・  ・ 「は」→00011110(30)  ・  ・ あとは、その決め事にあうようにプログラムを組むのです。 ただし、この決め事をプログラマそれぞれが勝手に決めると、それぞれのプログラムでデータを交換できなくなってしまいます。そこでその決め事をいろいろなところがしています。たとえば、ASCIIコード、JISコードS-JIS、UNICODEなどなど・・・その決め事に沿っていれば、そのコードでかかれたデータは読み書きできることになります。 これが文字を2進数で表すということです それぞれで

noname#38841
質問者

お礼

アドバイスありがとうございました。 よく分かりました。

関連するQ&A