こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

(1)JIS X 0201:1997ではアルファベットには7ビットの文字コードが与えられているが8ビットの文字コードは与えられていない、と思うのですが、それで正しいでしょうか。

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

投稿日時 - 2007-08-25 13:15:33

QNo.3285000

困ってます

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

> (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進表記を使うのは
数値文字参照 (例:~) のときぐらいだと思います.

投稿日時 - 2007-09-02 00:50:41

お礼

>8ビット符号が書かれているのに「与えられていない」というのは何を意味しているのでしょうか?

標題が「7ビット及び8ビットの情報交換用符号化文字集合」なので、「7ビットとはアルファベットの部分のことであり、8ビットとは片仮名の部分のことである」と思っていました。そうではないんですね。

>(a) (その文字集合の中で) 文字がどのように配置されているか.
(b) (その文字集合の中で) 特徴的な文字のコードがいくつになるか.
ということはいつも気にかけておいた方がいいですよ.

そうですね。よく分かりました。

>一般には (特にプログラマは) C言語の16進表記 0x7E やアセンブラの16進表記 7EH などを使用することが多いです.
また,Unicode ではほとんど16進表記です.10進表記を使うのは
数値文字参照 (例:~) のときぐらいだと思います.

そうなんですか。JISでは7/14などとしてあるのになぜJIS以外では0x7Eや7EHなどと書くのかと不思議に思っていました。

有り難うございました。

投稿日時 - 2007-09-02 14:53:29

ANo.4

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.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です。

投稿日時 - 2007-09-01 21:38:32

お礼

>アルファベットには7ビットの文字コードが与えられているし、8ビットの文字コードも与えられているからです。

そうなんですか。7ビットと善いながらビットも与えられているんですね。よく分かりました。

>文字“1”は図5では列3行1になり10進数で49、16進数で0x31です。

よく分かりました。
有り難うございました。

投稿日時 - 2007-09-02 14:18:47

ANo.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) とします。
これでわかりましたか?

投稿日時 - 2007-08-29 07:57:36

補足

>その理解は間違っています。

どのように間違っているのでしょうか。

>これでわかりましたか?

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

投稿日時 - 2007-09-01 19:18:24

ANo.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を送受する場合は、ページ切り替えの制御キャラクタとかエスケープシーケンスで切り替えます。

投稿日時 - 2007-08-26 12:07:02

補足

>そもそも質問(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)です。
よろしくお願いします。

投稿日時 - 2007-08-26 19:31:28

あなたにオススメの質問