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