$ZHEX (ObjectScript)
構文
$ZHEX(num)
$ZH(num)
引数
引数 | 説明 |
---|---|
num | 変換対象の数値として評価される式で、引用符付き文字列あるいは整数 (符号付き、符号なし) のいずれかです。 |
概要
$ZHEX は、16 進数の文字列を 10 進数の整数に、あるいは 10 進数の整数を 16 進数値に変換します。
num が文字列値の場合、$ZHEX はその文字列を 16 進数表記の数と解釈し、10 進数値を返します。文字列値は必ず引用符で囲みます。
num が数値の場合、$ZHEX は、その数値を 16 進数形式の数の文字列表記に変換します。最初か最後の数値が 8 バイトの符号付き整数で表記されていない場合、$ZHEX は <FUNCTION> エラーを発行します。
%SYSTEM.UtilOpens in a new tab クラスの HexToDecimal()Opens in a new tab および DecimalToHex()Opens in a new tab メソッドを使用して同じ 16 進数 / 10 進数変換を実行できます。
WRITE $SYSTEM.Util.DecimalToHex("27")
WRITE $SYSTEM.Util.HexToDecimal("27"),!
WRITE $SYSTEM.Util.HexToDecimal("1B")
$ZHEX と $CHAR を併用することにより、16 進数の文字コードを使用して Unicode 文字を指定することができます: $CHAR($ZHEX("hexnum"))。
16 進数への強制的な解釈
整数値を強制的に 16 進数として解釈させる場合、num 引数の最後に 16 進数以外の文字を連結します。例えば以下のようになります。
WRITE $ZHEX(16_"H")
これは、22 を返します。
引数
num
文字列値、数値、そのいずれかを含む変数、あるいはそのいずれかに評価される式です。
文字列値は 16 進数の数として読み取られ、正の 10 進数の整数値に変換されます。$ZHEX は、“A” から “F” の大文字と小文字を 16 進数の桁として認識します。先行のゼロはすべて切り捨てます。また、プラスやマイナスの符号、および小数点は認識しません。16 進数に含まれない文字を見つけたときに、文字列の評価を中止します。したがって、“F”、“f”、“00000F”、“F.7”、“FRED” は、すべて 10 進数の 15 に評価されます。文字列の最初の文字が 16 進数でない場合、$ZHEX はゼロの文字列に評価されます。したがって、“0”、“0.9”、“+F”、“-F”、“H” の文字列は、すべてゼロに評価されます。NULL 文字列 ("") は無効な値なので、<FUNCTION> エラーを発行します。
整数値は、10 進数の数として読み取られ、16 進数に変換されます。整数は、正の数でも負の数でもかまいません。$ZHEX は、先頭のプラスまたはマイナスの符号を認識します。先行のゼロはすべて切り捨てます。入れ子にされた算術演算を評価します。ただし、小数点は認識しません。小数点文字を検出した場合は、<FUNCTION> エラーを発行します。したがって、整数 217、0000217、+217、-+-217 はすべて 16 進数の D9 に評価されます。また -217、-0000217、-+217 は、すべて FFFFFFFFFFFFFF27 に評価されます。浮動小数点の数、後続符号、数値以外の文字などのその他の値では、<FUNCTION> または <SYNTAX> エラーを生成します。
例
WRITE $ZHEX("F")
これは、15 を返します。
WRITE $ZHEX(15)
これは、F を返します。
WRITE $ZHEX("1AB8")
これは、6840 を返します。
WRITE $ZHEX(6840)
これは、1AB8 を返します。
WRITE $ZHEX("XXX")
これは、0 を返します。
WRITE $ZHEX(-1)
これは、FFFFFFFFFFFFFFFF を返します。
WRITE $ZHEX((3+(107*2)))
これは D9 を返します。