狠狠撸

狠狠撸Share a Scribd company logo
计算机理论入门4
       2012年度後期
         垂水共之
 tarumi@ems.okayama-u.ac.jp
 浮動小数点表現(つづき)
        文字の表現
       20121022 講義後追加
浮動小数点の表現
? IEEE754 交換形式

  – 符号ビット
  – 指数部
     ? 下駄上げ表現

  – 仮数部
     ? 絶対値表現
32bits単精度

31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9   8   7   6   5   4   3   2   1   0



符      指数部(8ビット)                                 仮数部(23ビット、ケチ表現)
号



    ? 指数部 8ビット
       –   下駄 01111111
       –   1~254
       –   0のとき、仮数部0であればゼロ
       –   255のとき、無限大(仮数部0)、またはNaN(仮数部 非0
           )
    ? 仮数部 23ビット
       – 絶対値表現
       – 1.xxxxに正規化し、頭の1は記録しない(ケチ表現)
    64bits倍精度                        128bits4倍精度
         指数部 11ビット                       指数部 15ビット
         仮数部 52ビット                       仮数部 112ビット
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9                          8       7       6       5       4       3       2       1       0

 0   0   1   1   1   1   1   1   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0       0       0       0       0       0       0       0       0       0

符        指数部(8ビット)                                               仮数部(23ビット、ケチ表現)
号

     3               F               8               0               0               0                           0                               0

 0   0   1   1   1   1   1   1   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0       0       0       0       0       0       0       0       0       0




                     3F800000                10進数に直すと?




                 10進数の-118.625はどんなビット配列になるかな?
1.25(10) =1.01(2) =1.01(2)×20
2.5(10)   =10.1(2) =1.01(2)×21
0.625(10) =0.101(2) =1.01(2)×2-1

仮数部 1.01
仮数部の表現 ケチ表現 整数部の1は省く
    .010000000???0

指数部 0, 1, -1
指数部の表現 下駄上げ表現                                     下駄=01111111 (2)
     0 01111111+0                 =01111111
     1 01111111+1                 =10000000
     -1 01111111-1                =01111110
符         指数部(8ビット)                                               仮数部(23ビット、ケチ表現)
号


 0   0    1   1   1   1   1   1   1   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

      3               F               A               0               0               0               0               0


 0   1    0   0   0   0   0   0   0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

      4               0               2               0               0               0               0               0


 0   0    1   1   1   1   1   1   0   0   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

      3               F               2               0               0               0               0               0
零と非数値


符       指数部(8ビット)                                               仮数部(23ビット、ケチ表現)
号


0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

    0               0               0               0               0               0               0               0           +0


1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

    8               0               0               0               0               0               0               0           -0


0   1   1   1   1   1   1   1   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

    7               F               8               0               0               0               0               0           +∞


1   1   1   1   1   1   1   1   1   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0

    F               F               8               0               0               0               0               0           -∞


0   1   1   1   1   1   1   1   1                                   少なくとも 1 ビットは1
    7               F               8                                                                                           NaN
0.1(10)
? 0.1(10)=0.000110011001100110???(2)
         =1.10011001100110011???(2)×2-4



? 指数部                                    4(10)=100(2)
            –       01111111
                 -)         100
                 ----------------
                    01111011


符               指数部(8ビット)                                                            仮数部(23ビット、ケチ表現)
号


0   0       1    1   1   1       0   1   1   1       0   0   1   1       0   0   1    1       0   0   1   1       0   0   1   1       0   0   1   1       0   0

        3                    D                   C                   C                    C                   C                   C                   C           0.1
2012.625
16 ) 2012
                                                                         0.625
      125 ... 12
                                                                       x     2
                                                                         1.250
     16 )125
                                                                       x     2
           7 ... 13
                                                                         0.500
                                                                       x     2
2012(10)=7DC(16)                                                                                            0.625(10)=0.101(2)
                                                                         1.000
   = 111 1101 1100(2)

2012.625(10)= 111 1101 1100.101(2)                                                                           指数部
            =1.11 1101 1100 101(2)×210                                                                       10(10)=1010(2)

                                                                                                               0111 1111 下駄
                                                                                                             +)     1010
                                                                                                               1000 1001
 符
 号                指数部(8ビット)                                                            仮数部(23ビット、ケチ表現)


 0    1       0    0   0   1       0   0   1   1       1   1   1   0       1   1   1    0       0   1   0    1

          4                    4                   F                   B                    9                    4     0         0
文字の表現
? バイト:文字の記憶単位

? 1B=7bits (米国、英国)
  – 00から7Fまで128種類のビットパターン
  – アルファベット 大文字(26文字)、小文字(26文字)
  – 数字 0123456789 (10文字)
  – 記号等( 空白 + - * / = @ : ; ! " # $ % & ' ~ | ^ ? < > _ , . ) (27文字 or
    more)
  – 制御文字(非印刷文字、改行、タブ、???) (32文字)
? 1B=8bits (その他のラテン系、日本)
  – 00からFFまで256種類のビットパターン
     ? 00から7Fまでは基本的に上と同じ
  – 80からFFまでに固有の文字
  – 日本ではカタカナ(ア???ンなど) (49文字or more)
ANK文字
? Alphabet
   – 大文字、小文字
? Numeric
   – 数字
? Kana
   – カタカナ文字


? 英数字
   – Alphabet+numeric
                                注意:英数字等のANK文字には
                                    全角と半角とがある。
? 全角文字、半角文字
   – 全角文字:漢字?ひらがな等の日本語文字
   – 半角文字:英数字等の半分の幅で表される文字
   – 昔、固定幅の文字サイズが、漢字?ひらがな等の日本語文字、
     英数字の倍の幅を使っていた。
英字    A,B,C,???,Z        英数と数字
をまとめて
数字      0,1,2,???,9      「英数字」
という
特殊文字    .(ピリオド,点)    ,(コンマ)   _(ブ
ランク)
        +(プラス) -(マイナス)        *(ア
スタリスク,星)
          /(スラッシュ)    =(等号)   ((開
きカッコ)
           )(閉じカッコ) :(コロン) ;
(セミコロン)
           ?(くさび,引用符,シングルクオーテ
ーション)
文字コード体系
? JIS
 – Japan Industrial Standard
 – 日本工業規格
? EBCDIC
 – Extended Binary Coded Decimal Interchage Code
 – EBCDIK       EBCDIC with Kana
? ISO
 – International Organization for Standardization
 – 国際標準化機構
? ASCII
 – American Standard Code or Information Interchange
ANK文字コードの例



(例)         JIS(16進)   EBC
DIC(16進)
      A      41
C1
      B      42
C2
     ブランク   20
40
      0      30
F0
      1      31
F1
      ?
      ?
      9      39
F9
闯滨厂8ビットコード表
                                        上位4ビット
         0    1    2    3   4   5   6    7   8   9   A   B   C   D   E   F
     0        DE   SP   0   @   P   `    p               -   ?   ?
     1   SH   D1   !    1   A   Q   a    q           ?   ?   ?   ?
     2   SX   D2   "    2   B   R   b    r           ?   ?   ?   ?
     3   EX   D3   #    3   C   S   c    s           ?   ?   ?   ?
     4   ET   D4   $    4   D   T   d    t           ?   ?   ?   ?
     5   EQ   NK   %    5   E   U   e    u           ?   ?   ?   ?
     6   AK   SN   &    6   F   V   f    v           ?   ?   ?   ?
下位
4    7   BL   EB   '    7   G   W   g    w           ァ   ?   ?   ?
ビッ   8   BS   CN   (    8   H   X   h    x           ィ   ?   ?   ?
ト
     9   HT   EM   )    9   I   Y   i    y           ゥ   ?   ?   ?
     A   LF   SB   *    :   J   Z   j    z           ェ   ?   ?   ?
     B   HM   EC   +    ;   K   [   k    {           ォ   ?   ?   ?
     C   CL        ,    <   L      l    |           ?   ?   ?   ?
     D   CR        -    =   M   ]   m    }           ?   ?   ?   ?
     E   SO        .    >   N   ^   n    ~           ?   ?   ?   ゛
     F   SI        /    ?   O   _   o                ?   ?   ?   ゜
「数値」と「数字」
? 計算機では文字としての「数字」と「数値」とは異なる
? “12”という文字は次のように記録される(JISコー
  ド)
 –   [1]   0011 0001 0011 0010
 –           3    1    3    2
? 数値としての12 は固定小数点方式では
 –   [2]   0000 0000 0000 1100
 –           0    0    0    C
? [1]を固定小数点方式で解釈すれば12594となる
 (ちなみにEBCDICコードのF1F2を同様に解釈すれば-3086
 となる)。
? 計算機は(バカであるがゆえに)記録されているbit
  列が文字列か,数値なのかを判別することはできない。
? これを判別するのは人間(プログラマ-)の役割であり
  ,この違いを認識してプログラムを作らなければならな
? (注)さらに 先に述べた機械語で表現された命令と上
  の数値,文字列を区別するのも人間の役割であり,計算
  機は区別することはできない。
漢字の表現形式
? 1B=8bitsでは256種類、漢字には少なすぎる!
? 2B=16bitsでは65,536種類

? 漢字(多言語文字)の表現形式
 –   JIS
 –   Shift-JIS
 –   EUC-JP
 –   Unicode
       ? UTF-8
       ? UTF-16
       ? UTF-32
JIS   漢字の表現形式
?   教育用漢字         1,006字
?   当用漢字          1,850字(常用漢字に変更される)
?   人名用漢字         285字
?   常用漢字          2136字/4388音訓
?   JIS漢字コード
    –   JIS第1水準   2,965字 音読み順
    –   JIS第2水準   3,390字 部首画数順
    –   JIS第3水準   1,259字
    –   JIS第4水準   2,436字
    –   非漢字       1,183字
JIS   つづき
? ANKとの調和
  – 漢字イン        Esc$B
  – 漢字アウト
     ? Esc(J    ANKへ
     ? Esc(B    ASCII
     ? ESC(J    JIS X 0201-1976 Roman
     ? ESC$@    JIS X 0208-1978 (旧JIS)
     ? ESC$B    JIS X 0208-1983 (新JIS)


? 例               平成24年10月30日
               [KI]平成[KO]24[KI]年[KO]10[KI]月[KO]30[KI]日
  [KO]
? バイト数         3 22     3 2 3 2          3 2 3 2   3 2 3 2 3
Shif JIS コード
? ANKの未使用領域 80-9F, E0-FF に
  JISコードの1B目を移し(シフト)、
  JISコードの2B目はそのまま

? 漢字イン、漢字アウト無しで、ANK文字と共存可能

? 注意:
  – 漢字コードの2B目にはANK文字と同じコードも出てくる。
  – 文字列の先頭から見て行けば、ANK文字か漢字かは判別可能。
  – 文字列の途中からは判別不可能!
EUC-JP Extended Unix Code
? ASCII     00-7F (1B)
? 漢字        A1A1-FEDF (2B) JIS漢字コードの各バイトに80
  を加
? 半角カナ      8EA1-8EDF (2B)
? 補助漢字      8FA1A1-8FFEFE (3B)

? 1文字が 1B~ 3B
     code set 0: ASCII
                       1Bコード 7bits JIS
     code set 1: JIS90漢字コードに相当 2Bコード
                       JIS90の各バイトに128(x80)を加えたもの
     code set 2: カタカナ
                       2Bコード、1B目はx8Eに固定、2B目のxA1~xFEを使用
     code set 3: 補助漢字
                       3Bコード、1B目はx8Fに固定、2B,3B目はxA1~xFEを使用
Unicode
? 漢字に限らず、世界中の文字を統一的に扱う企画
? 16bitsで体系化を始める
  – 基本多言語面(BMP)
? 21bits 体系化へ

? CJK Han Unicication 統合漢字   (Chinese, Japanese, Korean)
  – 中国語、日本語、朝鮮語の漢字
符号化方式
? UTF-8
  – インターネットで一番よく利用されている
  – 1B~4Bの可変長
     ? ASCII上位互換


? UTF-16
  – BMP文字は16bitsで
  – その他の文字は16bitsペア(32bits)
  – Windows内部表現で利用されている


? UTF-32
  – すべての文字を32bitsの固定長で表現
     ? 実際使われているのは21bits
例
? 「愛」
 –   JIS         1b 24 42 30 26 1b 28 42
 –   Shift JIS   88 a4
 –   EUC-JP      b0 a6
 –   UTF-8       e6 84 9b
? 「あ」
 –   JIS         1b 24 42 24 22 1b 28 42
 –   Shift JIS   82 a0
 –   EUC-JP      a4 a2
 –   UTF-8       e3 81 82
? 「A」(ANK文字)
 –   JIS         ?
 –   Shift JIS   ?
 –   EUC-JP      ?
 –   UTF-8       ?

More Related Content

计算机理论入门04

  • 1. 计算机理论入门4 2012年度後期 垂水共之 tarumi@ems.okayama-u.ac.jp 浮動小数点表現(つづき) 文字の表現 20121022 講義後追加
  • 2. 浮動小数点の表現 ? IEEE754 交換形式 – 符号ビット – 指数部 ? 下駄上げ表現 – 仮数部 ? 絶対値表現
  • 3. 32bits単精度 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 符 指数部(8ビット) 仮数部(23ビット、ケチ表現) 号 ? 指数部 8ビット – 下駄 01111111 – 1~254 – 0のとき、仮数部0であればゼロ – 255のとき、無限大(仮数部0)、またはNaN(仮数部 非0 ) ? 仮数部 23ビット – 絶対値表現 – 1.xxxxに正規化し、頭の1は記録しない(ケチ表現) 64bits倍精度 128bits4倍精度 指数部 11ビット 指数部 15ビット 仮数部 52ビット 仮数部 112ビット
  • 4. 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 符 指数部(8ビット) 仮数部(23ビット、ケチ表現) 号 3 F 8 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3F800000 10進数に直すと? 10進数の-118.625はどんなビット配列になるかな?
  • 5. 1.25(10) =1.01(2) =1.01(2)×20 2.5(10) =10.1(2) =1.01(2)×21 0.625(10) =0.101(2) =1.01(2)×2-1 仮数部 1.01 仮数部の表現 ケチ表現 整数部の1は省く .010000000???0 指数部 0, 1, -1 指数部の表現 下駄上げ表現 下駄=01111111 (2) 0 01111111+0 =01111111 1 01111111+1 =10000000 -1 01111111-1 =01111110 符 指数部(8ビット) 仮数部(23ビット、ケチ表現) 号 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 F A 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 2 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 F 2 0 0 0 0 0
  • 6. 零と非数値 符 指数部(8ビット) 仮数部(23ビット、ケチ表現) 号 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 8 0 0 0 0 0 0 0 -0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7 F 8 0 0 0 0 0 +∞ 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 F F 8 0 0 0 0 0 -∞ 0 1 1 1 1 1 1 1 1 少なくとも 1 ビットは1 7 F 8 NaN
  • 7. 0.1(10) ? 0.1(10)=0.000110011001100110???(2) =1.10011001100110011???(2)×2-4 ? 指数部 4(10)=100(2) – 01111111 -) 100 ---------------- 01111011 符 指数部(8ビット) 仮数部(23ビット、ケチ表現) 号 0 0 1 1 1 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 3 D C C C C C C 0.1
  • 8. 2012.625 16 ) 2012 0.625 125 ... 12 x 2 1.250 16 )125 x 2 7 ... 13 0.500 x 2 2012(10)=7DC(16) 0.625(10)=0.101(2) 1.000 = 111 1101 1100(2) 2012.625(10)= 111 1101 1100.101(2) 指数部 =1.11 1101 1100 101(2)×210 10(10)=1010(2) 0111 1111 下駄 +) 1010 1000 1001 符 号 指数部(8ビット) 仮数部(23ビット、ケチ表現) 0 1 0 0 0 1 0 0 1 1 1 1 1 0 1 1 1 0 0 1 0 1 4 4 F B 9 4 0 0
  • 9. 文字の表現 ? バイト:文字の記憶単位 ? 1B=7bits (米国、英国) – 00から7Fまで128種類のビットパターン – アルファベット 大文字(26文字)、小文字(26文字) – 数字 0123456789 (10文字) – 記号等( 空白 + - * / = @ : ; ! " # $ % & ' ~ | ^ ? < > _ , . ) (27文字 or more) – 制御文字(非印刷文字、改行、タブ、???) (32文字) ? 1B=8bits (その他のラテン系、日本) – 00からFFまで256種類のビットパターン ? 00から7Fまでは基本的に上と同じ – 80からFFまでに固有の文字 – 日本ではカタカナ(ア???ンなど) (49文字or more)
  • 10. ANK文字 ? Alphabet – 大文字、小文字 ? Numeric – 数字 ? Kana – カタカナ文字 ? 英数字 – Alphabet+numeric 注意:英数字等のANK文字には 全角と半角とがある。 ? 全角文字、半角文字 – 全角文字:漢字?ひらがな等の日本語文字 – 半角文字:英数字等の半分の幅で表される文字 – 昔、固定幅の文字サイズが、漢字?ひらがな等の日本語文字、 英数字の倍の幅を使っていた。
  • 11. 英字 A,B,C,???,Z 英数と数字 をまとめて 数字 0,1,2,???,9 「英数字」 という 特殊文字 .(ピリオド,点) ,(コンマ) _(ブ ランク) +(プラス) -(マイナス) *(ア スタリスク,星) /(スラッシュ) =(等号) ((開 きカッコ) )(閉じカッコ) :(コロン) ; (セミコロン) ?(くさび,引用符,シングルクオーテ ーション)
  • 12. 文字コード体系 ? JIS – Japan Industrial Standard – 日本工業規格 ? EBCDIC – Extended Binary Coded Decimal Interchage Code – EBCDIK EBCDIC with Kana ? ISO – International Organization for Standardization – 国際標準化機構 ? ASCII – American Standard Code or Information Interchange
  • 13. ANK文字コードの例 (例) JIS(16進) EBC DIC(16進) A 41 C1 B 42 C2 ブランク 20 40 0 30 F0 1 31 F1 ? ? 9 39 F9
  • 14. 闯滨厂8ビットコード表 上位4ビット 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 DE SP 0 @ P ` p - ? ? 1 SH D1 ! 1 A Q a q ? ? ? ? 2 SX D2 " 2 B R b r ? ? ? ? 3 EX D3 # 3 C S c s ? ? ? ? 4 ET D4 $ 4 D T d t ? ? ? ? 5 EQ NK % 5 E U e u ? ? ? ? 6 AK SN & 6 F V f v ? ? ? ? 下位 4 7 BL EB ' 7 G W g w ァ ? ? ? ビッ 8 BS CN ( 8 H X h x ィ ? ? ? ト 9 HT EM ) 9 I Y i y ゥ ? ? ? A LF SB * : J Z j z ェ ? ? ? B HM EC + ; K [ k { ォ ? ? ? C CL , < L l | ? ? ? ? D CR - = M ] m } ? ? ? ? E SO . > N ^ n ~ ? ? ? ゛ F SI / ? O _ o ? ? ? ゜
  • 15. 「数値」と「数字」 ? 計算機では文字としての「数字」と「数値」とは異なる ? “12”という文字は次のように記録される(JISコー ド) – [1] 0011 0001 0011 0010 – 3 1 3 2 ? 数値としての12 は固定小数点方式では – [2] 0000 0000 0000 1100 – 0 0 0 C ? [1]を固定小数点方式で解釈すれば12594となる (ちなみにEBCDICコードのF1F2を同様に解釈すれば-3086 となる)。 ? 計算機は(バカであるがゆえに)記録されているbit 列が文字列か,数値なのかを判別することはできない。 ? これを判別するのは人間(プログラマ-)の役割であり ,この違いを認識してプログラムを作らなければならな
  • 16. ? (注)さらに 先に述べた機械語で表現された命令と上 の数値,文字列を区別するのも人間の役割であり,計算 機は区別することはできない。
  • 17. 漢字の表現形式 ? 1B=8bitsでは256種類、漢字には少なすぎる! ? 2B=16bitsでは65,536種類 ? 漢字(多言語文字)の表現形式 – JIS – Shift-JIS – EUC-JP – Unicode ? UTF-8 ? UTF-16 ? UTF-32
  • 18. JIS 漢字の表現形式 ? 教育用漢字 1,006字 ? 当用漢字 1,850字(常用漢字に変更される) ? 人名用漢字 285字 ? 常用漢字 2136字/4388音訓 ? JIS漢字コード – JIS第1水準 2,965字 音読み順 – JIS第2水準 3,390字 部首画数順 – JIS第3水準 1,259字 – JIS第4水準 2,436字 – 非漢字 1,183字
  • 19. JIS つづき ? ANKとの調和 – 漢字イン Esc$B – 漢字アウト ? Esc(J ANKへ ? Esc(B ASCII ? ESC(J JIS X 0201-1976 Roman ? ESC$@ JIS X 0208-1978 (旧JIS) ? ESC$B JIS X 0208-1983 (新JIS) ? 例 平成24年10月30日 [KI]平成[KO]24[KI]年[KO]10[KI]月[KO]30[KI]日 [KO] ? バイト数 3 22 3 2 3 2 3 2 3 2 3 2 3 2 3
  • 20. Shif JIS コード ? ANKの未使用領域 80-9F, E0-FF に JISコードの1B目を移し(シフト)、 JISコードの2B目はそのまま ? 漢字イン、漢字アウト無しで、ANK文字と共存可能 ? 注意: – 漢字コードの2B目にはANK文字と同じコードも出てくる。 – 文字列の先頭から見て行けば、ANK文字か漢字かは判別可能。 – 文字列の途中からは判別不可能!
  • 21. EUC-JP Extended Unix Code ? ASCII 00-7F (1B) ? 漢字 A1A1-FEDF (2B) JIS漢字コードの各バイトに80 を加 ? 半角カナ 8EA1-8EDF (2B) ? 補助漢字 8FA1A1-8FFEFE (3B) ? 1文字が 1B~ 3B code set 0: ASCII 1Bコード 7bits JIS code set 1: JIS90漢字コードに相当 2Bコード JIS90の各バイトに128(x80)を加えたもの code set 2: カタカナ 2Bコード、1B目はx8Eに固定、2B目のxA1~xFEを使用 code set 3: 補助漢字 3Bコード、1B目はx8Fに固定、2B,3B目はxA1~xFEを使用
  • 22. Unicode ? 漢字に限らず、世界中の文字を統一的に扱う企画 ? 16bitsで体系化を始める – 基本多言語面(BMP) ? 21bits 体系化へ ? CJK Han Unicication 統合漢字 (Chinese, Japanese, Korean) – 中国語、日本語、朝鮮語の漢字
  • 23. 符号化方式 ? UTF-8 – インターネットで一番よく利用されている – 1B~4Bの可変長 ? ASCII上位互換 ? UTF-16 – BMP文字は16bitsで – その他の文字は16bitsペア(32bits) – Windows内部表現で利用されている ? UTF-32 – すべての文字を32bitsの固定長で表現 ? 実際使われているのは21bits
  • 24. 例 ? 「愛」 – JIS 1b 24 42 30 26 1b 28 42 – Shift JIS 88 a4 – EUC-JP b0 a6 – UTF-8 e6 84 9b ? 「あ」 – JIS 1b 24 42 24 22 1b 28 42 – Shift JIS 82 a0 – EUC-JP a4 a2 – UTF-8 e3 81 82 ? 「A」(ANK文字) – JIS ? – Shift JIS ? – EUC-JP ? – UTF-8 ?