こんにちは。ティーマネジメントの田中です。 FileMaker上で10進数を2進数、16進数へ変換する計算式をご紹介します。 カスタム関数などに設定してご利用ください。
10進数→2進数への変換
While ( [ ~num = 8 ; //元の数字 ~result = "" ] ; ~num > 0 ; [ ~mod = Mod ( ~num ; 2 ) ; ~num = Div ( ~num ; 2 ) ; ~result = ~mod & ~result ] ; ~result )
~num の部分には変換したい数字を当てはめてください。 計算結果は以下のようになります。
10進数から2進数への変換は、下記図の考え方を元に作成しています。
8を2で割ると4と余りが0、 4を2で割ると2と余りが0、 というのを1まで繰り返して、最終的に余りを逆順で繋げたものが2進数へ変換したものになります。
10進数→16進数への変換
While ( [ ~num = 255 ; //元の数字 ~result = "" ] ; ~num > 0 ; [ ~mod = Middle ( "0123456789ABCDEF" ; Mod ( ~num ; 16 )+1 ; 1 ) ; //16で割ったときの余り +1番目の数 ~result = ~digit & ~result ; ~num = Div ( ~num ; 16 ) ] ; ~result )
16進数も2進数への変換と考え方は同じです。 ある数を16で割ったときの余り、というのを、Middle関数で表現しています。 ある数を16で割ったときの余り(Mod (~num ; 16 ))は、0~15の数値になりますが、 Middle関数で指定できる数字は1以上のため、Modの計算結果に+1をしています。
おわりに
FileMaker 2023時点では、10進数から2進数、16進数へ変換する関数は実装されていませんが、 工夫することで自分で計算式を作成することもできます。 ぜひこれらをカスタムAppに組み込んで使ってみてください。