はじめに
16進数の値を入力してビット入れ替えをしたかったので、16進数を分割して1ビットごと別々なセルに入れる式を作りました。
使い方
2行目に16進数の値を入れると3行目に10進数の値が表示され4行目に2進数の値が表示されます。
作り方
3行目はHEX2DEC関数を使って16進数を10進数に変換しているだけです。
4行目は
=MAKEARRAY(1, 4, LAMBDA(x,y,BITAND(BITRSHIFT(B3,4-y),1)))
という式になっています。
まず、BITRSHIFT関数で4ビット目、3ビット目、2ビット目を1ビット目にシフトさせます。
そしてBITAND関数で、1ビット目以外を0にマスクします。
それをLAMBDA関数にして、MAKEARRAY関数で4,3,2,1ビットを同時に計算しています。
MAKEARRAY関数を使用しなくても、直接数値を入れれば同じことができますが、式をコピーしたときにシフト量を手で変更する必要があります。
MAKEARRAY関数を使用すれば、4ビット目にあたるセルにこの関数をコピーすれば手修正なしに計算してくれます。
まとめ
16進数を分割して1ビットごと別々なセルに入れる式についてまとめました。
コメント