« (親指シフト)キーボードコレクション……の続き | トップページ | エジプトの公衆電話 »

2009.10.17

ビット演算(OR)

ビット単位でフラグを立てるというやり方で集計したデータを、別のデータと集約しようとして、ビット演算を使おうとしたらExcelにもNumberにもそういう関数がないことを最近知ったわたくし。「ビット演算」という考え方は、どうやら一部の人にしか需要のないモノなのですね。

学生の時以来、Excelでできなきゃawkでやる、というのがモットーなのですが、Mac OS Xのawkにはビット演算関数がないらしいので、よせばいいのにOR演算のための関数とか書いてしまいました。

function bit_or ( x, y ) {
l = x > y ? x : y
i = 0
while ( 2 ^ i <= l ) {
b_x[ i ] = int( x * 2 ^ -i ) % 2
b_y[ i ] = int( y * 2 ^ -i ) % 2
i++
}
j=0
while ( j < i ) {
v += ( b_x[ j ] || b_y[ j ] ) * 2 ^ j
j++
}
return v
}

|

« (親指シフト)キーボードコレクション……の続き | トップページ | エジプトの公衆電話 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/3920/46509136

この記事へのトラックバック一覧です: ビット演算(OR):

« (親指シフト)キーボードコレクション……の続き | トップページ | エジプトの公衆電話 »