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。
この範囲は必要なビット長は11ビット。
①まず、UNICODE符号(0x00C4)の下位1バイト(0xC4)を2進数にすると、
1100 0100
②11ビットにするために上位3ビットに0を追加
000 1100 0100
ちなみに、スライドNo.46の”符号位置を2進数にすると”のフォーマットでは
000 1100 0100
yyy xxxx xxxx
のようになる。
④スライドNo.47の”変換後ビット列”のフォーマットに変換
1100 0011 1000 0100
ちなみに、スライドNo.47の”変換後ビット列”のフォーマットでは
1100 0011 1000 0100
110y yyxx 10xx xxxx
⑤16進数へ変換
0xC3 0x84
答えは 0xC3 0x84 です。
△△△△ ここまでが正解 △△△△
次回は
誤差と文字コードのテストをします。
あと、プログラマ適性検査もどきをやります。