投稿

7月, 2021の投稿を表示しています

7月14日(水)1コマ目

今日、やったこと 誤差、文字コードのテスト 今日のテスト 問1 No.1 値がほぼ等しい浮動小数点同士の減算を行うと、仮数部の大半が消えてしまい、有効桁数がすくなくなります。これを けた落ち と呼びます。 No.2 扱うことができる桁数には上限があるため、仮数部の最小けた以下の値は四捨五入や切り捨て、切り上げを行って(この処理を丸めと呼ぶ)桁数内に納めます。これを 丸め誤差 と呼びます。 No.3 絶対値の大きな数と小さな数同士の加減算を行う際、指数部を合わせることでどちらかの値の仮数部が扱うことができる桁数内に収めることができなくなり、計算にも反映されなくなります。これを 情報落ち と呼びます。 No.4 扱うことができる上限を超える= オーバーフロー です。 問2 情報落ちが発生するのは絶対値の大きな数と小さな数の加減算を行ったとき。 ア 絶対値が同じような数の減算で、ケタ落ちが発生するおそれあり。 イ 絶対値が同じような数の減算で、ケタ落ちが発生するおそれあり。 ウ 2つの値は他に比べてかなり離れている。 情報落ちが発生するおそれあり 。 エ 絶対値が同じような数の減算で、ケタ落ちが発生するおそれあり。 問3 No.1 正しい。 No.2 EUC-JPはおもにUNIXやLinuxで利用される符号化方式であり、対象文字集合には漢字を 含む 。 No.3 UNICODEは多国語を収容した 文字集合 である。 No.4 符号化文字集合であるJIS X 0208には半角英数字、記号、半角カナ、制御文字を含み、全角かな も含む 。 問4 1文字が1~4バイトになるため、1バイト目か否かがわかるようにする必要がある。 UTF-8では1バイト目は0または11で始まり、2バイト目以降は10で始まることで、1バイト目か否かがわかる。 問題を1バイトずつ先頭4ビットだけ書くと以下のとおり。  33 0011 0で始まるため1文字目の1バイト目  CF 1100   11で始まるため2文字目の1バイト目  80 1000   10で始まるため2文字目の2バイト目  E3 1110   11で始まるため3文字目の1バイト目  81 1000   10で始まるため3文字目の2バイト目  AF 1010...

7月7日(水)1コマ目

イメージ
今日、やったこと 文字コードのつづき 今日のホワイトボード 先週は 文字のあつまり = 文字集合 文字を数値に置き換えるためのルール = 文字符号化方式 がポイントでした。 さらに、初期のころに使われていた文字集合と符号化方式が一体化したASCIIやJIS X 0201で実際に符号化してみました。 符号化方式 日本語を含む文字集合(JIS X 0201、JIS X 0208など)に対応した符号化方式として Shift_JIS(亜種が結構ある) EUC-JP ISO-2022-JP UTF-8 などがあります。 Shift_JIS 符号化のルールは結構めんどくさいことをやっているので省略。 SJISとも呼ばれ、日本で最も使われている符号化方式(と思う)。 図 Shift_JIS EUC-JP UNIXはこちらを利用。 文字集合ごとに符号化方式が異なる。 図 1をEUC-JPで符号化 図 半角カナのイ、ヌを符号化 図 全角カナのイ、ヌを符号化 ISO-2022-JP Web(とくにメール)で利用。 UTF-8 UNICODEとよく混合されて扱われる。 UNICODEは文字集合(文字のあつまり)。 UTF-8はUNICODE中の文字を符号化するための符号化方式。 「文字コードはUNICODEで・・」は間違った使い方。 「文字コードはUTF-8で・・」が正しい。 なぜ文字化けする? 送信側で利用した文字符号化方式と受信側で利用した文字符号化方式が一致しないため発生。 なお、ASCIIに含まれる数字、アルファベット、記号はどの符号化方式でもASCIIでの符号化方式を継承している。よって、数字、アルファベット、記号は文字化けすることは基本的にない。 結局、全角文字が文字化けすることになる。 次回は 誤差と文字コードのテストします 。 基本情報技術者試験の午前問題から誤差と文字コードに関する問題をチェックしてください。 なお、符号化方式を暗記してこいなんてことは要求しません。