1 :
ひよこ名無しさん:
1バイトというのはコンピュータのデータ量の基礎単位であり、
1バイト=8ビット=2進数8桁のことであります。
1バイト=8ビット=2^8=256種の状態を表すことができ、
英文であれば、アルファベット・数字・記号など必要な文字はほぼサポートできます。
しかし、漢字を用いる日本語など文字数が256種におさまらない言語においては
1文字に対して2バイトの割り当てを行います。
これにより1文字65536種、これならどんな文字でも表すことができるでしょう。
ふと疑問に思ったのですが、
1バイト文字・2バイト文字の混合した文書において、
これらはどのように区別されているのでしょう?
例えば、仮に1バイト文字の最後の文字を「z」、2バイト文字の最後の文字を「終」とします。
順番 16進数表記 2進数表記
z 256文字目 FF 11111111
終 65536文字目 FFFF 1111111111111111
そして、
zz FF・FF 11111111・11111111
この「終」と「zz」のように、1バイト文字2つと、2バイト文字1つのそれぞれで
同じ状態になるところがあるんですが、1バイト文字・2バイト文字の混じった文書においては
どのようにして区別しているんでしょうか?
>>1 2ちゃんではそういう単発質問は禁止されてます。
質問する前に必ず読んでください。
▽簡単な質問は【くだらねぇ質問はここに書き込め!!】スレッドへ。
3 :
ひよこ名無しさん:04/09/03 13:44 ID:ct6kKNSH
自分なりに考えてみたいくつかの答え
1.区別してない
日本語OSでは半角文字もすべて2バイト。
半角っぽく見せてるだけ。
↓
互換性等の問題から明らかに違います。
それに1バイト文字一つのテキストを作ってプロパティを見るとちゃんと1バイトです。
2.タグのようなものを用いる
HTMLのタグのように「ここから2バイト」のような区切りがある。
<2byte></2byte>の間にはさまれた部分だけ2バイト文字。
↓
同じく、テキストで「aあ」とだけ書いてプロパティを確認したところ、
きっちり3バイトで、タグ分の容量などは入ってませんでした。
3.1ビットは拡張子。実は1バイト文字=128種、2バイト文字=32768種
例えば2進数表記で、初めに「0」なら、後ろ7ビットで文字を決定、
初めに「1」なら、後ろ15ビットで文字を決定、のようにしている。
最終文字は
2進数表記
z 01111111
終 1111111111111111
zz 01111111・01111111
01111111・11111111 →さらに後ろの8ビットを参照し、「F+(全角文字)」
↓
128文字で足りるかなぁ・・・?
4 :
ひよこ名無しさん:04/09/03 13:47 ID:ct6kKNSH
>>2 すいません、行ってきます。
長文なんですが、ここへのリンク貼るのと、
再掲するのはどっちがいいでしょう?
6 :
ひよこ名無しさん:04/09/03 13:55 ID:ct6kKNSH
>>5 どうもありがとうございます。
単発スレ立て失礼しました。以後気をつけます。
答え3ですか。128種でもバリバリ余ってるんですね……
真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ