NO.1 のであっているのですが、もしまだピンとこないようでしたら。。。
文字コードというのがあり、NO.1にあるようにいろいろ規格はありますが、
まずは半角のA(大文字)なら バイナリー(2進数)表記で、01000001、
a(小文字)なら 01100001 になっています。
ということは、キーボードで a を押したら、キーボードからパソコンへの
ケーブルでは01100001が伝わり、メモリに入り、そのメモリの内容をエディタ
画面に出す際に、スクリーンへ01100001が伝わって、画面上で a が出ます。
エディタの内容をファイルに記録させると、しかるべき位置に01100001が
はいっています。たとえば なら <もaも> もそのようになっています。
ただ、HTMLを処理する機構も(あるいはエディタで文字を追加したり
削除したりする仕組みも)そこにあるバイナリデータは文字コードだと
おもっています。ですから、たとえば、 という3文字がきたら、どう扱う、
<h>という3文字がきたら、どう扱う、何もないときのaは文字として扱う、
といった処理は、いわばバイナリーかどうかというよりは、文字コードが
どうかでもって処理しているといってよいでしょう。
そして、さらに、たとえば同じaでも、太字で、イタリックでという指示
がくると、フォントのセットから、太字のイタリックのaを選べという指示が
これもバイナリーのある種のコードで伝えられ、それによって、「太字の
イタリックのa」が表示させられる、ということになります。
=== 修正文 ===
NO.1 のであっているのですが、もしまだピンとこないようでしたら。。。
文字コードというのがあり、NO.1にあるようにいろいろ規格はありますが、
まずは半角のA(大文字)なら バイナリー(2進数)表記で、01000001、
a(小文字)なら 01100001 になっています。
ということは、キーボードで a を押したら、キーボードからパソコンへの
ケーブルでは01100001が伝わり、メモリに入り、そのメモリの内容をエディタ
画面に出す際に、スクリーンへ01100001が伝わって、画面上で a が出ます。
エディタの内容をファイルに記録させると、しかるべき位置に01100001が
はいっています。たとえば < a > なら < も a も > もそのようになっています。
ただ、HTMLを処理する機構も(あるいはエディタで文字を追加したり
削除したりする仕組みも)そこにあるバイナリデータは文字コードだと
おもっています。ですから、たとえば、 < a > という3文字がきたら、どう扱う、
<h>という3文字がきたら、どう扱う、何もないときのaは文字として扱う、
といった処理は、いわばバイナリーかどうかというよりは、文字コードが
どうかでもって処理しているといってよいでしょう。
そして、さらに、たとえば同じaでも、太字で、イタリックでという指示
がくると、フォントのセットから、太字のイタリックのaを選べという指示が
これもバイナリーのある種のコードで伝えられ、それによって、「太字の
イタリックのa」が表示させられる、ということになります。
ちょっと漠然とした質問でどう答えるか迷いますが、大筋正しい内容をお考えのように思います。
まずバイナリーという言葉をここで使うのはやめておきましょう。意味が広すぎます。
HTMLファイル(ストリーム)をブラウザが解釈して画面表示にするまでの流れはこう理解しましょう。
ファイルにはHTMLが記述されていますが、それは文字体系を何かしらのルールで記号化して並べてあります。「文字体系」のことは一般的に「キャラクタセット」といい、英語用の文字を表すASCII、英語・日本語の文字を表すJIS、世界中の文字を表すUnicodeなどあります。それを記号化する「何かしらのルール」を「エンコーディング」といい、UnicodeのエンコーディングにはUTF8,UTF16,UTF32などあります。JIS用のエンコーディングにはシフトJIS、EUC、ISO-2022-JPなどあります。ここら辺のキーワードは、聞いたことありますか?
まず、ブラウザはHTMLがどんな文字体系をどんなエンコーディングで構成されたものか識別して、そのルールに従って読み取らないといけません。そうして読まれた文字データはメモリ上で内部的な形式で格納されます(この時点で、ご質問の「バイナリ」だと言っていいかもしれません)。
読み取られた文字データはHTMLの文法に従って解釈されます。解釈の結果、要素が入れ子の階層になっているデータ構造としてメモリ上に展開されます(これも、ご質問の「バイナリ」に相当するでしょうか)。
要素の階層構造データは、HTMLの表示ルールに従って画面上で占める位置や大きさ・姿が決定され、実際に画面上に描画されます。
こういったデータ処理ですが、ご質問の「バイナリ」のイメージと比べてどうでしょうかね。
NO.1 のであっているのですが、もしまだピンとこないようでしたら。。。
文字コードというのがあり、NO.1にあるようにいろいろ規格はありますが、
まずは半角のA(大文字)なら バイナリー(2進数)表記で、01000001、
a(小文字)なら 01100001 になっています。
ということは、キーボードで a を押したら、キーボードからパソコンへの
ケーブルでは01100001が伝わり、メモリに入り、そのメモリの内容をエディタ
画面に出す際に、スクリーンへ01100001が伝わって、画面上で a が出ます。
エディタの内容をファイルに記録させると、しかるべき位置に01100001が
はいっています。たとえば なら <もaも> もそのようになっています。
ただ、HTMLを処理する機構も(あるいはエディタで文字を追加したり
削除したりする仕組みも)そこにあるバイナリデータは文字コードだと
おもっています。ですから、たとえば、 という3文字がきたら、どう扱う、
<h>という3文字がきたら、どう扱う、何もないときのaは文字として扱う、
といった処理は、いわばバイナリーかどうかというよりは、文字コードが
どうかでもって処理しているといってよいでしょう。
そして、さらに、たとえば同じaでも、太字で、イタリックでという指示
がくると、フォントのセットから、太字のイタリックのaを選べという指示が
これもバイナリーのある種のコードで伝えられ、それによって、「太字の
イタリックのa」が表示させられる、ということになります。
=== 修正文 ===
NO.1 のであっているのですが、もしまだピンとこないようでしたら。。。
文字コードというのがあり、NO.1にあるようにいろいろ規格はありますが、
まずは半角のA(大文字)なら バイナリー(2進数)表記で、01000001、
a(小文字)なら 01100001 になっています。
ということは、キーボードで a を押したら、キーボードからパソコンへの
ケーブルでは01100001が伝わり、メモリに入り、そのメモリの内容をエディタ
画面に出す際に、スクリーンへ01100001が伝わって、画面上で a が出ます。
エディタの内容をファイルに記録させると、しかるべき位置に01100001が
はいっています。たとえば < a > なら < も a も > もそのようになっています。
ただ、HTMLを処理する機構も(あるいはエディタで文字を追加したり
削除したりする仕組みも)そこにあるバイナリデータは文字コードだと
おもっています。ですから、たとえば、 < a > という3文字がきたら、どう扱う、
<h>という3文字がきたら、どう扱う、何もないときのaは文字として扱う、
といった処理は、いわばバイナリーかどうかというよりは、文字コードが
どうかでもって処理しているといってよいでしょう。
そして、さらに、たとえば同じaでも、太字で、イタリックでという指示
がくると、フォントのセットから、太字のイタリックのaを選べという指示が
これもバイナリーのある種のコードで伝えられ、それによって、「太字の
イタリックのa」が表示させられる、ということになります。
とりあえず、「コメントは届いた」とお答えします。
お手数をおかけしました。感じが分かりました! ありがとうございます。
テキストの場合は本当に至って単純に、1文字1文字がそれに対応する文字コードのバイナリデータに1対1で変換されるだけです。HTMLは、そのデータの並びの約束事を定義するものの一種で、その約束に従ってブラウザが表示しています。約束事はこれ一つではないので、違ったソフトが違った約束事に従って動作することも当然あります。ただ、テキストを使う約束事は人間が見て多少なりとも解りやすくしようという努力は払われているため、式や文章みたいな形になっていますね。
この約束事に従わなければ、期待通りに表示されませんし、テキストデータにおける最も基本の約束事、文字コードが不明になるとそれは文字化けとなります。
とっても根本的な話をすると、コンピュータには全てのデータはバイナリとして見えています。バイナリデータの並びに約束事を与えて、テキストにしたり音楽にしたり画像にしたりしているだけなんです。だからコンピュータがその約束事を知らない場合、バイナリはただのビット列に過ぎません。アプリというものは、一見ただのビット列に見えるけど、実はある約束事に従っているデータの扱い方をコンピュータに指示するものでもあるわけです。
コメント、ありがとうございます。たとえば、Aの場合、A→65(整数値)→01000001(2進数)ではなく、A→01000001というイメージでしょうか。
そう、Aというキー→01000001です。この0と1だけの数値の並びを人は覚えにくいから、「65」とか「六十五」とか「sixty five」といいかえているのです。
とりあえず、「コメントは届いた」とお答えします。
2013/11/14 13:31:59お手数をおかけしました。感じが分かりました! ありがとうございます。
2013/11/14 14:42:37