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...