基本情報技術者試験な備忘録(半角英数字が1バイト(8ビット))

20230315半角英数字が1バイト(8ビット)ついてのメモ

 


パソコン素人です。
ASCII素人です。

 

基本情報技術者試験の問題・テキスト等を見て気になったメモです。
間違っているのであまり見ないで下さい。すみません。
(今回も中味バラバラなメモです。)

 

今更ながら、「なんで半角英数は、1バイト(8ビット)必要なのか」と思った。
半角のアルファベットは26文字。大文字小文字で52文字。
数字は、0~9で、10文字。
その他、14個?の記号(!&"'とか)
合計76文字。

76文字なら、
7ビット(2^7)でいいのでは?とか思った。

 

 

 

よく分かっていないが、半角英数文字と言えば、ASCII(アスキー)。
************************************************
ASCIIは、ウィキペディアでは、
「ASCII(アスキー、英: American Standard Code for Information Interchange)は、
1963年に制定された、アメリカ合衆国における情報通信用の文字コードである」
とのこと。
************************************************
あと、ネットとかの情報では、
ASCII文字は、0~127使うらしい。
ASCII文字以外は、128~255を他の文字を表現するために利用(マルチバイト)するらしい。全角文字とか。
1バイトはオクテットということや、乗算・除算でもシフト演算したり1バイト区切りは都合がよいらしい。?
昔は7ビットでやったりしてたのかもしれないが「バイトマシン」とかに統一したのだろう。?
*****************************************************


wikiにも経過が書いてある。
(以下wiki)
派生規格
ASCIIはISO標準7ビット文字コードISO/IEC 646の元となった。
しかし7ビットでは英語以外の言語に対応するには不十分であり、
後に他のヨーロッパ言語で使われるラテン文字への対応を追加した8ビット文字コードであるISO/IEC 8859が策定された。
その後、世界中で使用されている様々な文字を表現できるようにするため、ASCIIで使用されていない128番以降の部分に、
その他の文字を割り当てたり、複数バイトを使用して1つの文字を表現したりするように独自拡張した文字符号化方式
使われるようになっていった。
とか書いてある。


*******************************************************
関係ないかもしれないが、文字の判断で、文字を扱う場合で、乗算・除算をする場合、シフト演算するのがオクテットは楽なのかも。

 

 

*******************************************************
で、基本情報技術者試験の問題を見ると、「平成19年春 午前問11」
8ビット目を「偶数パリティビット」としている問題があった。
(基本情報技術者試験ドットコム様に感謝)

基本情報技術者平成19年春期 午前問11

文字列“ET”をASCIIでコード化したものを16進表記したものはどれか。
ここで,文字コードの8ビット目には,偶数パリティビットが付く。

解き方:
上記の図では、7ビット分の記載がされている。
Eなら、100 0101
Tなら、101 0100
で、問題文に、「文字コードの8ビット目には,偶数パリティビットが付く」とある。
パリティチェックとは「誤り検出方式」のことで、偶数パリティは、
他の7ビットの数値の1の個数が、
奇数個なら8ビット目を1
偶数個なら8ビット目を0
とするらしい。
で、
Eなら、100 0101は、3個なので→1100 0101
Tなら、101 0100は、3個なので→1101 0100
と無事8ビット(1バイト)に収まる。

で、1100 0101を10進数にすると197で、さらに16進数にするとC5
1101 0100を10進数にすると212で、さらに16進数にするとD4
になる。答えC5D4

 


=============================================================
自分は最初、「a」は2進数で「1」(2は、10)でいいのかとかアホなことを考えていたので、
そもそも、7ビットすらいらないのでは?と思っていた。
でもaは「0000 0001」なのでどうしても1バイト必要なんだなと思った。

ちなみに、windowsのメモ帳で、半角1文字のみ保存したデータは1バイトだった。
半角2文字のみ保存したデータは2バイトだった。
そんな風になっているんだね。

 

追記:パリティビットは、頭につけたり、後ろにつけたりいろいろあるようです。