1.0x143fを10進数に変換

16**3   16**2   16**1   16**0
4096    256     16      1
*1      *4      *3      *f
=4096   =1024   =48     =15

4096+1024+48+15=5183             答え 5183

2.0b10011011を10進数に変換

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

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

3.0x146 + 0x67の計算を行った結果を10進数で示す

0x146
16**2   16**1   16**0
256     16      1
*1      *4      *6
=256    =64     =6

256+64+6=326

0x67
16**1   16**0
16      1
*6      *7
=96     =7

96+7=103

0x146 + 0x67 = 326 + 103
             = 429                答え 429

4.0x146 + 0x67の計算を行った結果を2進数で示す

   1   4   6
+)     6   7
______________
   1  10  13

    1  a(10)  d(13)
 0001  1010   1101                答え 110101101

5.プログラム

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

name = []
x= 0
print"あなたの名前をローマ字で入力してください。\n"
name = gets.chomp!.to_s

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

6.プログラムの説明

・配列のときと同じように[]を利用すると簡単に取り出せる
・初期値を0とした上で、whileの繰り返しの中でiの値を1ずつ変更していけば構
成する文字の文字コードを全て明らかにすることができる
・値を文字列に変換するために%s、16進数の文字コードを表示するために%xを使
う。

7.プログラムの実行結果

sime{YAHAGI Anna}% ./report7.rb                                     [~/program]
あなたの名前をローマ字で入力してください。
yahagianna
y  79 
a  61 
h  68 
a  61 
g  67 
i  69 
a  61 
n  6e 
n  6e 
a  61 

8.感想

問1から問4まではスムーズに終わったが、プログラムを作るのが難しかった。
でも、難しかったプログラムは先輩に教えてもらいながらやって、?理解できた。

9.参考文献

http://roy/~naoya/ruby/9.html