投稿

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

7月14日(木)2コマ目

イメージ
今日、やったこと 文字コード 今日のホワイトボード [符号化方式]Shift_JIS 1文字が1バイト(半角文字)、2バイト(全角文字)と可変長。 図 Shift_JIS 飛ばした演習問題 スライドNo.41 EUC-JPで符号化 (半角)1 ASCIIなら0x31。ASCIIの文字はEUC-JPでも同じ値に符号化されるので、0x31。 (半角)イ 半角のイはJIS X 0201では0xB2。 JIS X 0201の文字は 1バイト目に0x8Eを付加。 2バイト目はJIS X 0201で符号化した値。 よって、0x8E 0xB2。 (半角)ヌ 半角のヌはJIS X 0201では0xC7。 JIS X 0201の文字は 1バイト目に0x8Eを付加。 2バイト目はJIS X 0201で符号化した値。 よって、0x8E 0xC7。 スライドNo.42 EUC-JPで符号化 (全角)イ 全角のイはJIS X 0208の5区4点。 JIS X 0208の文字は 区、点に0xA0を足す。 よって、0xA5 0xA4。 (全角)ヌ 全角のイはJIS X 0208の5区44点。 JIS X 0208の文字は 区、点に0xA0を足す。 1バイト目は 0x05 + 0xA0 = 0xA5。 2バイト目は 44 => 0x2C 0x2C + 0xA0 = 0xCC。 よって、0xA5 0xCC。 スライドNo.56 UTF-8で符号化 1 1はUNICODE符号ではU+0031。 この範囲はASCIIで変換した値のままの1バイト。よって、0x31。 A ※Aではなく、Aに̈(ウムラウト)が付いた文字。 ▼▼▼▼ 間違えていました。ごめんなさい。 ▼▼▼▼ UNICODE符号ではU+00C4。 この範囲は必要なビット長は11ビット。よって、UNICODE符号の00C4を11ビットにすると、     C  4  000 1100 0100 となる。これを2バイトのフォーマット(0000 0yyy xxxx xxxx)にあてはめると、  0000 0000 1100 0100 となる。16進数で表すと、  0x00 0xC4 となる。よって、0x00 0xC4。 ▲▲▲▲ 間違えていました。ごめんなさい。 ▲▲▲▲ ▽▽▽▽ ここからが正解 ▽▽▽▽ UNICODE符号ではU+00C4。

7月13日(水)1コマ目

イメージ
今日、やったこと 誤差 文字コード 今日のホワイトボード 誤差 オーバーフロー データがデータサイズより大きくなると発生。 アンダーフロー 浮動小数点データが最小値より小さくなると発生。 丸め誤差 データサイズに収めるために、あるケタより小さい桁の 値を丸めてしまう (切り上げや切り捨てを行う)ことで発生する誤差。 ケタ落ち 近い値同士の減算をした場合のように 有効ケタ数が減ってしまう ことで発生する誤差。 情報落ち 非常に離れた値同士の計算を行う際、 ケタ数を合わせるためにデータが欠落する ことで発生する誤差。 文字コード 「文字コード」という言葉がごちゃごちゃに扱われているので注意!! 符号化方式を文字コードと呼んだり 符号化されたデータを文字コードと呼んだり 文字集合・符号化 文字集合は符号化する文字のあつまり。 文字は符号化方式に従って符号化される。 図 文字集合・符号化 用語解説 JIS、ISO いずれも規格(ルール)を決める団体および規格名の総称。 図 JIS、ISO エンコード・デコード データを符号化することをエンコード。 符号化されたデータをもとに戻すことをデコード。 図 エンコード、デコード ASCIIで符号化すると プログラムで文字を変数に代入すると、各変数のメモリ上のデータは下図のように符号化された値が代入されている。 図 C言語での文字の扱い 次回は 文字コードの続きをやります。 また、誤差のテストをそのうちやります。(多分、次回はやらない)