1.

0x143f→5183

〔1〕16**3  16**2  16**1  16**0
〔2〕4096   256    16     1
〔3〕1      4      3      f(15)
〔4〕4096   1024   48     15

4096+1024+48+15=5183

2.

0b10011011→155

〔1〕2**7 2**6 2**5 2**4 2**3 2**2 2**1 2**0
〔2〕128  64   32   16   8    4    2    1
〔3〕1    0    0    1    1    0    1    1
〔4〕128  0    0    16   8    0    2    1

128+0+0+16+8+0+2+1=155

3.

0x146+0x67→429

0x146は
〔1〕16**2 16**1 16**0
〔2〕256   16    1
〔3〕1     4     6
〔4〕256   64    6

256+64+6=326

0x67は
〔1〕16**1 16**0
〔2〕16    1
〔3〕6     7
〔4〕96    7

96+7=103

合計
326+103=429

4.

0x146+0x67→110101101

2) 429 1
  ____
2) 214 0
  ____ 
2) 107 1
  ____
2) 53  1
  ____
2) 26  0
  ____
2) 13  1
  ____
2) 6   0
  ____
2) 3   1
  ____
2) 1   1
  ____
   0

5.問5のプログラム

#!/usr/koeki/bin/ruby
# -*- coding: utf-8 -*-

name = []
i = 0

print"あなたの名前を16進数に変換します。\n"
print"あなたの名前をローマ字で入力してください。\n"
name = gets.chomp!

while i < name.length
  printf("%s   %x \n",name[i],name[i].ord)
  i += 1
end


6.問5のプログラムの説明

1行目:rubyインタプリンタのあるディレクトリを指定している。
2行目:日本語文字コードがEUC-JPであることを示している。
4行目:今回は文字列を構成する各文字の文字コードを調べるので配列の時と同様
      に[]を利用する。name(変数)が配列であることを宣言する。
5行目:iに0を代入するように指定。(初期値は0。)
7行目:""の内のメッセージを表示するように指定。\nで改行も行う。
8行目:7行目と同様。
9行目:gets.chomp!メソッドを使用することでキーボードからの入力を文字列と
      して取得する。改行文字(\n)があれば取り除く。
11行目:whileを使用し、繰り返しを始める。配列のデータ数だけ繰り返す。
       name.lengthメソッドとすることでname(配列変数)の中に代入されている
       値を表示するようにする。
12行目:printfメソッドを使用し後ろに指定した""内のメッセージを表示するが、
       その際に%s(対応する値を文字列に置き換えるためのメソッド)、%x(16
       進数の文字コード表示するためのメソッド)のそれぞれの位置に""の後ろ
       で指定した変数(name)に代入された値を入れ込んで表示する。文字列の
       文字コードを知りたいので文字列[i]として文字列を配列扱いとして、イ
       ンデックスを変更することで0文字目、1文字目、2文字目といった具合に
       順番に取り出していく。
13行目:繰り返しが行われるたびにiの値が1ずつ増えるように指定。
14行目:whileに対応するend.繰り返しが終了する。
       

7.問5の実行結果

broy{c115xxx}% ./report7.rb                                         [~/program]
あなたの名前を16進数に変換します。
あなたの名前をローマ字で入力してください。
inouemichitaka
i   69 
n   6e 
o   6f 
u   75 
e   65 
m   6d 
i   69 
c   63 
h   68 
i   69 
t   74 
a   61 
k   6b 
a   61 


8.感想

今回もプログラム作成が辛かった。計算の方はなんとか理解できた。

9.参考文献

基礎プログラミング第6回
基礎プログラミング第9回
Ruby プログラミング 基礎講座 P34、P50
石垣智隆さんによる指導

10.作成したプログラムの添付