• ベストアンサー

JIS X 0201の7ビットと8ビットの区別

(1)JIS X 0201:1997ではアルファベットには7ビットの文字コードが与えられているが8ビットの文字コードは与えられていない、と思うのですが、それで正しいでしょうか。 (2)JIS X 0201:1997の図5ではアルファベットの上の方「7ビット符号」という欄と「8ビット符号」という欄が表示されています。もし上記(1)の御回答がyesであればここには「8ビット符号」の欄は不要だと思うのですが、なぜ「8ビット符号」の欄が表示されているのでしょうか。

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

  • ベストアンサー
  • noocyte
  • ベストアンサー率58% (171/291)
回答No.4

> (1)JIS X 0201:1997ではアルファベットには7ビットの文字コードが > 与えられているが8ビットの文字コードは与えられていない、 > と思うのですが、それで正しいでしょうか。 どうしてそのように思われるのかさっぱり理解できません. JIS X 0201 規格書の図5~6,表2には, 7ビット符号と8ビット符号の両方が併記されています. 8ビット符号が書かれているのに「与えられていない」と いうのは何を意味しているのでしょうか? またそれならば,7ビット符号も同様に書かれているのに 「与えられていない」と結論しないのはなぜでしょうか? > すみません。 > 49(0x31)、48(0x30)などの意味が全く分かりません。 wakabakun さんがどういう目的で色々と文字コードのことを 調べておられるのかわかりませんが,(符号化) 文字集合に どういう文字が含まれているかとか,何文字含まれているか ということだけじゃなくて, (a) (その文字集合の中で) 文字がどのように配置されているか. (b) (その文字集合の中で) 特徴的な文字のコードがいくつになるか. ということはいつも気にかけておいた方がいいですよ. 例えば (b) について JIS X 0201 では, ・最初の図形文字:' ' (スペース) のコードは 32 (10進). ・最初の数字:'0' は 48. ・最初の英大文字:'A' は 65. ・最初の英小文字:'a' は 97. ・半角円記号 (しばしばシフトJISで問題を引き起こす):'\' は 92. 努力して暗記しろとはいいません. 文字コードについて調べていれば自然に覚えます. また文字コードを扱ううえで,2進数,16進数,簡単なビット操作 (演算とまではいいません) を理解しておくことは必須です. おそらく,文字コードとビットの対応が理解できていないから (1) のような意味不明なご質問が出るのでしょう. JIS の規格書内では,例えば16進数 0x7E の代わりに 7/14 のように 10進表記しているので16進数を知らなくても何とかなるかもしれませんが, 一般には (特にプログラマは) C言語の16進表記 0x7E やアセンブラの 16進表記 7EH などを使用することが多いです. また,Unicode ではほとんど16進表記です.10進表記を使うのは 数値文字参照 (例:~) のときぐらいだと思います.

wakabakun
質問者

お礼

>8ビット符号が書かれているのに「与えられていない」というのは何を意味しているのでしょうか? 標題が「7ビット及び8ビットの情報交換用符号化文字集合」なので、「7ビットとはアルファベットの部分のことであり、8ビットとは片仮名の部分のことである」と思っていました。そうではないんですね。 >(a) (その文字集合の中で) 文字がどのように配置されているか. (b) (その文字集合の中で) 特徴的な文字のコードがいくつになるか. ということはいつも気にかけておいた方がいいですよ. そうですね。よく分かりました。 >一般には (特にプログラマは) C言語の16進表記 0x7E やアセンブラの16進表記 7EH などを使用することが多いです. また,Unicode ではほとんど16進表記です.10進表記を使うのは 数値文字参照 (例:~) のときぐらいだと思います. そうなんですか。JISでは7/14などとしてあるのになぜJIS以外では0x7Eや7EHなどと書くのかと不思議に思っていました。 有り難うございました。

その他の回答 (3)

  • zzzz0000
  • ベストアンサー率68% (127/186)
回答No.3

>どのように間違っているのでしょうか。 アルファベットには7ビットの文字コードが与えられているし、8ビットの文字コードも与えられているからです。 http://www.jisc.go.jp/app/JPS/JPSO0020.html で、「JIS規格番号からJISを検索」に x0201 を入力してJISX0201規格票の10ページの図5を見てください。 アルファベットのAには7ビット符号も8ビット符号も与えられています。7ビット符号の場合b7=1 b6=0 b5=0 b4=0 b3=0 b2=0 b1=1です。16進数なら0x41、10進数なら65です。8ビット符号の場合b8=0 b7=1 b6=0 b5=0 b4=0 b3=0 b2=0 b1=1です。16進数なら0x41、10進数なら65です。 13ページの図6を見てください。カタカナのエには7ビット符号も8ビット符号も与えられています。7ビット符号の場合b7=0 b6=1 b5=1 b4=0 b3=1 b2=0 b1=0です。16進数なら0x34、10進数なら52です。8ビット符号の場合b8=1 b7=0 b6=1 b5=1 b4=0 b3=1 b2=0 b1=0です。16進数なら0xb4、10進数なら180です。 >49(0x31)、48(0x30)などの意味が全く分かりません。 文字“1”は図5では列3行1になり10進数で49、16進数で0x31です。

wakabakun
質問者

お礼

>アルファベットには7ビットの文字コードが与えられているし、8ビットの文字コードも与えられているからです。 そうなんですか。7ビットと善いながらビットも与えられているんですね。よく分かりました。 >文字“1”は図5では列3行1になり10進数で49、16進数で0x31です。 よく分かりました。 有り難うございました。

  • zzzz0000
  • ベストアンサー率68% (127/186)
回答No.2

>(1)JIS X 0201:1997ではアルファベットには7ビットの文字コードが与えられているが8ビットの文字コードは与えられていない、と思うのですが、それで正しいでしょうか。 その理解は間違っています。 >(2)JIS X 0201:1997の図5ではアルファベットの上の方「7ビット符号」という欄と「8ビット符号」という欄が表示されています。もし上記(1)の御回答がyesであればここには「8ビット符号」の欄は不要だと思うのですが、なぜ「8ビット符号」の欄が表示されているのでしょうか。 約200種類の文字を0~127の数字だけを使ってA・B間で教えあう方法が7ビットの符号です。これで 10エン を送るには 49(0x31), 48(0x30), 14(0x0e), 52(0x34), 93(0x5d), 15(0x0f) とします。 約200種類の文字を0~255の数字を使ってA・B間で教えあう方法が8ビットの符号です。これで 10エン を送るには 49(0x31), 48(0x30), 180(0xb4), 221(0xdd) とします。 これでわかりましたか?

wakabakun
質問者

補足

>その理解は間違っています。 どのように間違っているのでしょうか。 >これでわかりましたか? すみません。 49(0x31)、48(0x30)などの意味が全く分かりません。 それと、元の文字列が「10エン」という1つだけであるのに、実際に送信する文字列がなぜ49(0x31), 48(0x30), 14(0x0e), 52(0x34), 93(0x5d), 15(0x0f) の6つもあるのでしょうか。

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.1

JIS X 0201:1997 『7ビット及び8ビットの情報交換用符号化文字集合』 そもそも質問(1)が符号体系の無理解から来る、ナンセンスな質問です。とはいえ、ここは専門家の解説がほしいところですが。。。 JIS-X0201に限らず、ISO2022系の文字コードは7ビットコード(94キャラクタの文字)から構成されます。 JIS-X-0201だと、2ページ(一方が英数字--ASCIIとほとんど同じ--、他方がカタカナ)からなります。 8ビット符号としてJIS-X-0201文字集合を送受する場合は、最上位ビットがページをあらわします。7ビット符号としてJIS-X-0201を送受する場合は、ページ切り替えの制御キャラクタとかエスケープシーケンスで切り替えます。

wakabakun
質問者

補足

>そもそも質問(1)が符号体系の無理解から来る、ナンセンスな質問です。 御指摘のとおりで、申し訳ありませんが当方かなりの素人です。よろしくお願いします。 >JIS-X0201に限らず、ISO2022系の文字コードは7ビットコード(94キャラクタの文字)から構成されます。 すみません。ISO2022系は全く知りません。 JIS X 0201の英数字が7ビットで成るのは分かります。 >JIS-X-0201だと、2ページ(一方が英数字--ASCIIとほとんど同じ--、他方がカタカナ)からなります。 すみません。「ページ」は分かりません。 JIS X 0201が英数字と片仮名でなっているのは分かります。 >8ビット符号としてJIS-X-0201文字集合を送受する場合は、最上位ビットがページをあらわします。 「最上位ビット」は、JIS X 0208:1997の図3のb8のことでしょうか。そうであれば分かります。 >7ビット符号としてJIS-X-0201を送受する場合は、ページ切り替えの制御キャラクタとかエスケープシーケンスで切り替えます。 すみません。「ページ切り替え」「エスケープシーケンス」の意味が分かりません。 たくさん分からないことがあるのですが、たくさん書いたのは分からないことを教えていただきたいのではなく当方の素人程度をお伝えしたかっただけです。お尋ねしたいのは、最初の質問の(1)、(2)です。 よろしくお願いします。

関連するQ&A

  • シフトJIS/7ビットJISの変換ライブラリについて

    C/C++で使える漢字コード変換のライブラリを探しています。 以下の条件に当てはまるライブラリ等ご存じでしたら、教えていただけないでしょうか? 1.C/C++で使用可(VisualC++, BorlandC++Builderなど、Windows環境) 2.シフトJISと7ビットJISコードの変換が可能(sjis -> jis, jis -> sjis) 3.SI/SO方式(0x0E/0x0F)でカタカナ/アルファベットを切り替えている7ビットJISコードからシフトJISへの変換が可能。また、同様に、シフトJISからSI/SO方式の7ビットJISコードへの変換が可能 4.ソースコードがあれば尚良い。 特に、3.のSI/SO方式で変換可能ライブラリを探しているのですが、なかなか見つかりません。 「ESC(I」「ESC(J」「ESC$B」を使用してアルファベット/カタカナの変換はどのライブラリでもできているのですが、上記のSI/SO方式での変換ができません。 現在までに評価して駄目だったものをリストにしてみます。 これ以外にご存じの方、もしくは、このリストに載っているものでも可能だよ!、というご意見などいただければ幸いです。 ・nkf for windows http://www.vector.co.jp/soft/win95/util/se295331.html ・babel http://tricklib.com/cxx/ex/babel/ ・漢字コード変換ライブラリ http://www.vector.co.jp/soft/win95/prog/se087586.html ・ack http://hp.vector.co.jp/authors/VA004474/win/ack.txt ・SJET http://www.vector.co.jp/soft/dl/dos/util/se018396.html

  • jis x 0208 について

    たびたび同じジャンルの質問になってしまうのですが 質問させてください。 jis x 0208 という文字コードについてですが この文字コードは94×94=8836文字を収容可能で、この中に6879文字入っています。 そしてiso2022に準拠しているのでGLやGLに呼び出して使います。 jisx0208は94×94の区点コードを使って一つの二次元の表が使われていますが 通常、コード表は1バイトを4ビットずつにわけて16×16の二次元の表を使われることが多いと思うのですが(7ビット構造のものは違いますが)、 その内GL、GRのコードポイントは94文字づつでありjisx0208の区点コードは8836文字分のコードポイント があるのでGL、GRには収まらないじゃないか?という疑問です。 94×94というのは、94文字集合の表が94枚重なっているという三次元(っぽい)で表現され、第1バイトで94枚の表の中から一枚選び、第2バイトで選ばれた表から文字を選択するという表現ならしっくりきます。(94文字集合同士ならぴったりと収まるから) 三次元(っぽい)表も区点コードも結局は 同じ文字を指定できるので表現の問題なのでしょうが、 jisx0208はその性格上、固定的な16進値で表すより一段抽象化した区点コードで表した方が便利だから、区点コードというものが導入されているだけで中間バッファに指示して、GR,GLに呼び出すという流れだけ見るには三次元(っぽい)の表の考え方をしていいのでしょうか? そもそも目に見えないところなのでこんなことをいちいち疑問に思うのもナンセンスかなと思ったのですが、どうもすっきりしないので、どなたか知恵を貸していただけたらと思っています。

  • JIS X 0213で定義されているのは6,879字それとも11,233字?

    JIS X 0213には第3水準漢字、第4水準漢字、非漢字(英数字、仮名、記号など)659字、計4,354字の文字とその文字コードが定義されていると聞きました。しかし、JIS X 0213には、第1水準漢字、第2水準漢字、非漢字524字の計6,879字も併せて合計で11,233字が収録されているとも聞きました。 質問1 この4,354字と11,233字の差はどのように考えたらよいのでしょうか。JIS X 0213で定義されたのが4,354字、JIS X 0208で定義されたのが6,688字、JIS X 0201で定義されたのが191字であり、JIS X 0213ではそれらの全てを、定義しているわけではないが、表示はしているということでしょうか。 質問2 また、もし表示はしているということであれば、その表示はJIS X 0213のどの部分においてさなれているのでしょうか。 http://www.jisc.go.jp/app/pager?id=13864 にJIS X 0213の一覧があるのは分かるのですが、このうちのどこに表示されているのか分かりません。

  • JISコードとは

    「JISコード」という言葉の意味が分かりません。 アスキーデジタル用語事典 http://yougo.ascii24.com/gh/13/001390.html によると、JIS X 0208、JIS X 0212に規定される文字コードのことのように思えるのですが、JIS X 0201、JIS X 0213に規定される文字コードは、JISコードには含まれないのでしょうか。 それとも、このようなこととは異なる、全く別の概念でしょうか。 「JISコード」の意味を教えてください。

  • JIS、SHIFT-JIS、EUCはなぜできた?

    教えてください。 文字コードについて調べています。アルファベットはASCIIコードで統一されているために、特に問題がなく、日本語にも JISコードという標準化されているコードがあります。 なので、基本的にはこれをみんなが使えば、文字化けなどという問題には悩まされなくてすむはず。 なのに、なぜ Windows では Shift-JISなどという独特な文字コードを使い、UNIX系では EUCコードを使っているのでしょう。いったい、どの文字コードが一番初めにできて、なぜそれで標準化を図ることができなかったのかなど、日本語文字コードに関する歴史について、ご存知の方、ぜひ教えていただければ幸いです。

  • JISコードが正しく表示されない

    閲覧ありがとうございます。 エクセルでJISコード表を作成してます。 B2[=DEC2HEX(CODE(C2),4)]関数 C2[文字]でJISコードを表示させてるのですが、 UniCodeの0x00A1~0x00A5を入力(IMEパレット)すると0x00A5は、005Cと正しく表示されるのですが、それ以外は003Fと違う値が表示されます。 何か設定等で問題あるのでしょうか? 宜しくお願いします。

  • 7ビット文字を送受信するときに8ビット目にあるもの

    JIS X 0201 に定義される7ビット文字は7ビットで識別されると聞きました。また、コンピューターは8ビット単位で情報を取り扱うと聞きました。 すると、7ビット文字を取り扱うときには8ビット目が使われないことになりますが、実際に7ビット文字を送受信するときにはここ(つまり、8ビット目)には何があるのでしょうか。

  • Windows7に標準装備されているIMEパッドの

    Windows7に標準装備されているIMEパッドの文字コードについて確認させてください。 IMEパッドの左側のメニューにある文字カテゴリでさまざまな文字集合がありますが、WindowsXPで標準サポートされているJIS X 0208の文字符号化方式であるShift_JISの文字コードはありますが、Windows7で標準サポートされているJIS X 0213:JIS2004の文字符号化方式であるShift_JISX0213あるいはShift_JIS-2004の文字コードがないのはなぜでしょうか。

  • JIS水準に俗字も入っているのですか?

    カテゴリー違いかも知れませんが、どちらで質問すれば良いのか分からず、こちらにて質問させて頂きます。 パソコンで文字を打つ場合などは、JIS水準(JIS第一水準や第二水準)等のJISコードを使って表示しているんですよね? 現在、戸籍関係の勉強していて、誤字俗字・正字一覧を使用しています。これを見ていて正字なのにJISコードが無い文字の多さに驚くとともに、正字は表示出来ないのに誤字俗字(迄・侠・鄭)等が表示できる文字の多さにも驚きました。 そこでご質問なのですが、パソコン上で表示できる文字というのどのように決められているのでしょうか? また、ワード等を使用するときに正字のみ使用して、誤字俗字は 使用しないといった設定は出来るのでしょうか? お時間のあるときで結構ですので、ご回答お願いします。

  • プログラミングにビットについて

    独学でプログラミングを勉強しているものですが、ビットについてまだ完全に理解できていません。 ビットというのは、メモリだとか、容量だとかという大雑把なことは分かっているのですが 詳しく完全に理解できてるわけではありません。 そこで 今日変数の復習をしていた所 教本の説明の欄の ○○(数字)ビット符号付き整数 みたいなものに疑問をもちまして 例えばintなら32ビット符号付き整数というような説明の形なのですが この場合のintの説明の解釈というのは 二進数で0一つで1ビットを占めているとして 32ビット符号付き整数というのは 二進数で言う+(-)0x31の数値を表現することができ、 なので この場合、+(-)を1ビット占めているので表現できる数字は10進数で言う+(-)2^31-1が限界ということでいいのでしょうか?