Unicode文字列をUTF-8でエンコードすると、各文字のエンコード結果の先頭バイトは2進表示が0または11で始まり、それ以降のバイトは10で始まる。16進表示された次のデータは何文字のUnicode文字列をエンコードしたものか。 CF 80 E3 81 AF E7 B4 84 33 2E 31 34 E3 81 A7 E3 81 99

【解答】

先頭バイトについて、2進表示で0,11であれば文字のスタートを表し、10で始まれば文字の途中であることを示すから、0,11である個数を数えれば良い。

そこで、それぞれの文字を2進と16進のセットに直すと、

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 A

1011 B

1100 C

1101 D

1110 E

1111 F

となる。この中で、0または11で始まるものは、16進の0~7、CDEFであるから、この数字で始まる個数を計算すれば良い。

とすると、CF 80 E3 81 AF E7 B4 84 33 2E 31 34 E3 81 A7 E3 81 99の文字列のうち、CF、E3、E7、33、2E、31、34、E3、E3が該当する。

よって、9個、9文字であることが分かる。

↓クリックしていただけると励みになります↓
にほんブログ村 株ブログ 株日記へ にほんブログ村 メンタルヘルスブログ 統合失調症へ にほんブログ村 為替ブログ 為替日記へ

シェアする

  • このエントリーをはてなブックマークに追加

フォローする