• ベストアンサー

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

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

noname#38841
noname#38841

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

  • ベストアンサー
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

  • コンピュータについて

    周波数192khz、量子化ビット数24ビットのとき 1時間の音声データ量を求めるとき(GBで) 192000×24×3600をしたあとにGBになおせばいいんですよね?これからどうするかわかりません。 コンピュータにくわしい方、お願いします。

  • 画像データ

    ある画像に文字情報を隠蔽するプログラムを作る必要があります 具体的には ・対象の画像の青の画素値について、全てのデータを2進数表現し下位1ビットを0にする ・入力したい文字を2進数8ビット表現し、青の下位1ビットに1ビットずつ埋め込む というプログラムなのですが、画像から画素値を読み取る方法が分かりません。 どなたかお願いします。

  • 画像データの入力(C言語)

    ある画像に文字情報を隠蔽するプログラムを作る必要があります。 具体的には ・画像の青の画素値について、全てのデータを2進数表現し下位1ビットを0にする ・入力したい文字を2進数8ビット表現し(常に頭のビットは0)青の下位1ビットに1ビットずつ埋め込む(青のデータ8個につき一文字隠蔽できる) というプログラムなのですが、画像から画素値を読み取る方法が分かりません。 どなたかお願いします。

  • コンピューター

    量子コンピューターやスパーコンピューターの性能2030年までにどのぐらい性能上がりますか?具体的に何ゼタプロセス、量子ビット、になる?

  • 量子コンピュータのプログラム

    量子コンピュータのプログラムのことをちょっと知りたいんです。 プログラム概念(やり方)はだいたいわかったのですが、 実際のプログラムというのを知りたいんです。 数式などではなく、実際に入力する数値です。 いくつかのステップが必要であれば、全てのステップを… とりあえず、数値に3を含まない素数の求め方なんかどうなるんですか? 具体例で教えてください。

  • テキストデータなのに数字とは

    コンピューターでテキストデータというと文字データのことだとよく言われますが、エクセル等で数値入力のセルのデータ(つまり数値)もTXT拡張子でしっかりと数字が出てくるのですが、このあたりの認識に仕方がいま一つ分かりません。数値データでも表示上はテキストとしてのデータとリンクしてたり・・・とか色々考えますが実際の所どうなのでしょうか?文字と数値は別のものなのでは。

  • コンピュータのデータ、プログラム

    コンピュータのデータやプログラムはハードディスクやメモリ上では0と1で保存されていると思います。でも文字と文字の区切りや、命令と命令の区切りはどうやって識別されるのでしょうか?区切りや変換ルールも0と1で保存されるのですよね、わけがわかりません。

  • 盗られたコンピュータのデータを・・・

    こんにちは。 盗難されたコンピュータのデータを、見られないようにする方法はありますか? 盗られてしまったのだから、それを取り戻す事や、中のデータをどうこうしたいわけではないんです。 ただ、盗った人間が中のデータを閲覧できないようにする方法がないものだろうか・・・と。 以前盗難されたノートパソコンに大事なデータが入っていました。そのデータは会社のファイルサーバにも有りますので、無くなった事は別段問題ではないんですが、それを見られないようにしたいんです。 当然事後(盗難後)にどうこうする事はできないので、事前にデータを保護する方法有りましたら教えて下さい。 ちなみに使用OSはWin2000で、そのコンピュータを使う限りパスワードがわれなければ中も見ることはできません。 でも、HDDを取り外して他のコンピュータで見る事ってできるんですよね?

  • 緊急時の際に、コンピュータすべてのデータを削除するにはどうすればよろし

    緊急時の際に、コンピュータすべてのデータを削除するにはどうすればよろしいでしょうか? パソコンを壊すとかそういうのではなくて、データを壊すコマンドとかないのでしょうか…。? Windows7 64bitを使っています。

  • 割合データの比較

     エクセルで,数値の全データ(母集団)の中から,ある数値の範囲に入っているデータの数を割合(百分率)で求めています.  この方法で求めた結果が2つあり,その2つの割合の結果に有意差があるか検定したい場合は,どのようにすれば良いでしょうか? (例)・データ1     母集団のデータ数6000     →指定した数値の範囲に入っているデータ数      600個(10%)    ・データ2     母集団のデータ数5500     →指定した数値の範囲に入っているデータ数      880個(16%) この2つの結果(10%と16%)に有意差があるか検定したい. 例では母数が変えてありますが,母数が同じ場合での検定方法もできれば教えて下さい.  説明が下手で分かりにくいかもしれませんが,是非教えて下さい.お願いします.