2進数や16進数のような異なる基数での数値を扱う場合、数値を文字列に変換したり、あるいはその逆を行うというのはよくある作業です。4D 21では String と Num コマンドが強化され、これらの変換がより強力になりました。
数値を任意の基数の文字列に変換する
String コマンドは、2から36までの任意の基数の整数から文字列への変換をサポートするようになりました。これにより、2進数、8進数、10進数、16進数、およびそれ以上の基数での値を簡単に表現できるようになりました。
var $result := String(6; 2)
// "110" — 2進数で表した 6
$result := String(254; 16)
// "fe" — 16進数で表して 254
$result := String(14256; 36)
// "b00" — 36進数で表した 14256
文字列を整数に変換
Numコマンドは2~36の任意の基数を使用して文字列を数値に変換することをサポートするようになりました。これは16進数や2進数の入力を扱う場合に特に便利です。
var $result:=Num("110";2)
// $result = 6
$result:=Num("fe";16)
// $result = 254
$result:=Num("b00";36)
// $result = 14256
注意Numは基底が指定されていない場合は従来の4D アルゴリズムを使用し、基底が指定されている場合はECMAScript アルゴリズムを使用するため、1e+25やそれ以上などの非常に大きな数では結果に差異が出る場合があります。
結論
行おうとしていることが、開発者ツールの構築、プロトコルのデバッグ、あるいは単により読みやすい形式での数値表示であろうと、これらの改善によりそれらは柔軟でコントロールしやすくなりました。4D ネイティブで、数値ベースの切り替え、ユーザー入力の検証、16進数や2進数のようなフォーマットでのデータのシリアライズが簡単にできるようになりました。
