ITソフトウェア論

課題レポートの解説

ここでは考え方と解答例のみを示します。

具体的な計算は、各回の講義ノートを参照してください。

以下、学生IDとして(14061234)を考えるものとします。


1.数値

 a.32bitの固定小数点数

@ 10進数−2進数の基数変換の計算を行い、絶対値を2進数に変換し、全体の桁を32bitとなるように、最上位桁に0を補う。

A 負の数の場合は符号ビット方式、歩数方式等の方法で表現する必要があるが、本設問の場合は正の数なので、@がそのまま解答となる。

   解答例  0000 0000 1101 0110 1000 1110 1011 0010 (2)   →  00D68EB2 (16)

  

 b.32bitの浮動小数点数

@ 10進数−2進数の基数変換の計算を行い、絶対値を2進数に変換する。

A 32bitでは、最上位bitから順に1bit、7bit、24bitに分け、それぞれを符号部、指数部、仮数部とする。

B もとの数が正の数であれば、符号部を0、負の数であれば1とする。

B 絶対値の2進数について、仮数部の桁数(24bit)と同じ桁数となるように調整する。桁が足りない場合は最上位桁に0を補い、桁が多い場合は有効桁数より下の桁を切り捨てる。

C 仮数部の小数点が最左端に来るように小数点を移動させ、移動した桁数を4で割った数を2進数で表し、指数部とする。ただし、小数点を左に移動させた場合は、指数部を負の数で表す。

   解答例 0100 0110 1101 0110 1000 1110 1011 0010 (2)  → 46D68EB2 (16)

 

 c.ゾーン型2進化10進数

@ 元の10進数の各桁を1桁ごとに2進数に変換する。

A 各桁に相当する4桁の2進数に「0011」を追加して8桁にする。

B 最後の桁を表す2進数には、元の数が正の数であれば「0011」の代わりに「1100」を、負の数の場合には「1101」を追加する。

   解答例 00110001 00110100 00110000 00110110 00110001 00110010 00110011 11000100 (2) →

                                                                                                    31343036313233C4 (16)

 

 d.パック型2進化10進数

 c.の@で求めた2進化10進数の末尾に正負を表す「1100」「1101」のいずれかを加え、全体の桁数が8の倍数桁である40bitとなるよう0000を補う。

  解答例  0000 0001 0100 0000 0110 0001 0010 0011 0100 1100 (2) → 14061234C(16)

 


 

2.半角数字(JIS X0201)

  a.7bit Even

@ JIS X0201コード表から(教科書30ページ表2.6のSI側)各桁の数字のコードを読み取る。

  たとえば、「4」であれば、上位bit 011 下位bit  0100 より 0110100となる。

A 1となる桁が全体で偶数個となるように、8桁目を加えて調整する。

  0110100 → 10110100

  解答例  10110001 10110100 00110000 00110110 10110001 10110010 00110011 10110100 (2) →

                                                   B1B43036B1B233B4 (16)

  b.7bit Odd

a.@で読み取ったコードに対して、1となる桁が全体で奇数個となるように8桁目を加えて調整する。

  たとえば、「3」の場合、0110011 → 10110011

  解答例  00110001 00110100 10110000 10110110 00110001 00110010 10110011 00110100 (2) →

                                                  3134B0B63132B334 (16)

  c.7bit Non Parity

a.@で読み取ったコードに対して、8bitとなるよう8桁目に0を加える。

  解答例  00110001 00110100 00110000 00110110 00110001 00110010 00110011 00110100 (2) →

                                                  3134303631323334 (16)

  d.8bit

JIS8bitコード表(教科書30ページ表2・6)から8bitコードとして各桁の数字のコードを読み取る。

解答例  00110001 00110100 00110000 00110110 00110001 00110010 00110011 00110100 (2) →

                                                  3134303631323334 (16)  

 


 

3.全角数字(JIS X0208の3区)

 a.7bit Even

@ 各桁の数を区点表3区から探し、第1バイト、第2バイトのコードを読み取る。

A 第1バイト、第2バイトそれぞれについて、1の数が偶数個となるように8桁目を加えて調整する。

B 第1バイト、第2バイトの順で結合し、全体で2バイト(16bit)となるように表す。

  「3」の場合

     第1バイト 0100011  → 10100011

     第2バイト 0110011  →  00110011            従って、10100011 00110011 (2)  → A333 (16) 

  解答例  A3B1 A3B4 A330 A336 A3B1 A3B2 A333 A3B4 (16)

   b.7bit Odd

a.@で読み取ったコードに対して、第1バイト、第2バイトのそれぞれについて1の数が奇数個となるように8桁目を加えて調整する。

  「3」の場合

  第1バイト 0100011  → 00100011

  第2バイト 0110011  → 0110011     従って、00100011 10110011 (2)  → 23B3 (16)

    解答例  2331 2334 23B0 23B6 2331 2332 23B3 2334 (16)

  c.7bit Non Parity

a.@で読み取ったコードに対して、第1バイト、第2バイトがそれぞれ8bitとなるように8桁目に0を加える。

  「6」の場合

  第1バイト 0100011  → 00100011

    第2バイト 0110110  → 00110110     従って、00100011 00110110 (2)  → 2336 (16)

  解答例   2331 2334 2330 2336 2331 2332 2333 2334 (16)

  d.シフトJIS

シフトJISでは、16進数81〜9F,E0〜EFのコードが区点表の2区ずつに割り当てられ、第1バイトとする。

従って、3区のコードは、82 (16)となる。

第2バイトは、16進数で40〜7E,80〜FCがそれぞれ2区分の各点に割り当てられる。

よって、たとえば「2」は、8251 (16)となる。

 解答例 8250 8253 824F 8255 8250 8251 8252 8253 (16)

シフトJIS漢字コード表(3区)

シフトJIS 0 1 2 3 4 5 6 7 8 9 A B C D E F
823F                                
824F            
825F  
826F          
8280  
8290          


 

 

  e.EUC

EUCコードでは、区点表の区、点のそれぞれに16進数A1〜FEが割り当てられる。

従って、JIS漢字コードの第1バイト、第2バイトのそれぞれに80(16)を足したものとなる。

  解答例 A3B1 A3B4 A3B0 A3B6 A3B1 A3B2 A3B3 A3B4 (16)

 

 


作成日:2009/01/09

作成者:高井 才明

いかなる場合も複製・転用を禁止します