Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

$ZHEX

16 進数文字列を 10 進数値に、あるいは 10 進数値を 16 進数値に変換します。

Synopsis

$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"))

パラメータ

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 を返します。

メモ

16 進数への強制的な解釈

整数値を強制的に 16 進数として解釈させる場合、num パラメータの最後に 16 進数以外の文字を連結します。例えば以下のようになります。

   WRITE $ZHEX(16_"H")

これは、22 を返します。

関連項目

FeedbackOpens in a new tab