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   10で始まるため3文字目の3バイト目
 E7 1110   11で始まるため4文字目の1バイト目
 B4 1011   10で始まるため4文字目の2バイト目
 84 1000   10で始まるため4文字目の3バイト目
 33 0011   0で始まるため5文字目の1バイト目
 2E 0010   0で始まるため6文字目の1バイト目
 31 0011   0で始まるため7文字目の1バイト目
 34 0011   0で始まるため8文字目の1バイト目
 E3 1110   11で始まるため9文字目の1バイト目
 81 1000   10で始まるため9文字目の2バイト目
 A7 1010   10で始まるため9文字目の3バイト目
 E3 1110   11で始まるため10文字目の1バイト目
 81 1000   10で始まるため10文字目の2バイト目
 99 1001   10で始まるため10文字目の3バイト目
 2D 0010   0で始まるため11文字目の1バイト目

よって、11文字

コメント

このブログの人気の投稿

5月19日(水)1コマ目

4月22日(木)1コマ目

6月23日(水)1コマ目