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

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

2009-05-30 n進法表記

_ linuxでの16進数の計算

WindowsとLinuxのソフトを比較すると、多くの点でLinuxの方が使いやすい。しかし、標準で入っているソフトの中で、唯一Windowsの方が勝っていると感じるのが計算機である。binaryをいじっていると、16進数の計算をしたくなるが、Windowsのcalcでは計算できるが、Linuxのxcalcだとできない。kcalcだとできるようだが。

そこで、rubyを使って計算することになる。これまでは、

ruby -e 'p "%x"%(0xa+0xb)'

とやっていたが、実はもっと便利なmethodがあることを知った。to_s(n)で、n進数の表記に変換できるのだ。すると、

ruby -e 'p (0xa+0xb).to_s(16)'

とすれば良いことになる。でもこちらの方がbyte数が多いな。ちなみに、1-zまでで表せる36進数まで対応しているようだ。99じゃなくてffの表を作るプログラムはこんな感じ。

n=16
for i in 1...n
  for j in 1...n
    print "%2s "%(i*j).to_s(n) 
  end
  puts
end 

これで、nを変えるだけでzzの表まで作ることができる。