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?

$NCONVERT

数値を、8 ビット文字の文字列でエンコードされた 2 進数値に変換します。

Synopsis

$NCONVERT(n,format,endian)
$NC(n,format,endian)

パラメータ

n 任意の数字。値、変数、式として指定できます。選択した format により、有効な値に対してさらに制限が課せられます。
format S1、S2、S4、S8、U1、U2、U4、F4、または F8 のいずれかの形式コード。引用符で囲んだ文字列で指定します。
endian オプション — ブーリアン値。0 = リトル・エンディアン、1 = ビッグ・エンディアン。既定値は 0 です。

説明

$NCONVERT は、指定された format を使用して、数値 n を 8 ビットのエンコードされた文字列に変換します。これらの文字の値は、$CHAR(0) から $CHAR(255) の範囲内になります。

以下の format コードがサポートされます。

S1 1 つの 8 ビット・バイトの文字列にエンコードされた符号付整数。値の範囲は -128 ~ 127 です。
S2 2 つの 8 ビット・バイトの文字列にエンコードされた符号付整数。値の範囲は -32768 ~ 32767 です。
S4 4 つの 8 ビット・バイトの文字列にエンコードされた符号付整数。値の範囲は -2147483648 ~ 2147483647 です。
S8 8 つの 8 ビット・バイトの文字列にエンコードされた符号付整数。値の範囲は -9223372036854775808 ~ 9223372036854775807 です。
U1 1 つの 8 ビット・バイトの文字列にエンコードされた符号なし整数。最大値は 255 です。
U2 2 つの 8 ビット・バイトの文字列にエンコードされた符号なし整数。最大値は 65535 です。
U4 4 つの 8 ビット・バイトの文字列にエンコードされた符号なし整数。最大値は 4294967295 です。
F4 4 つの 8 ビット・バイトの文字列にエンコードされた IEEE 浮動小数点数。
F8 8 つの 8 ビット・バイトの文字列にエンコードされた IEEE 浮動小数点数。

format 制限の範囲を超える値を指定すると、<VALUE OUT OF RANGE> エラーが発生します。符号なしの format に負の数を指定すると、<VALUE OUT OF RANGE> エラーが発生します。n が数値以外の値である (数値以外の文字が含まれている) 場合、Caché は文字列から数値への変換を実行します。数値以外の文字で始まる文字列は、0 に変換されます。

Caché は、F4 および F8 以外のすべての形式で小数を整数値に丸めます。

IsBigEndian()Opens in a new tab クラス・メソッドを使用して、オペレーティング・システム・プラットフォームでどのビット順序を使用するかを決定できます (1 = ビッグ・エンディアン・ビット順、0 = リトル・エンディアン・ビット順)。

  WRITE $SYSTEM.Version.IsBigEndian()

$SCONVERT$NCONVERT の逆の操作を行います。

以下の例では、一連の符号なしの数値を 2 バイトにエンコードされた値に変換します。

  FOR x=250:1:260 {
    ZZDUMP $NCONVERT(x,"U2") }
  QUIT

以下の例では、同じ操作をビッグ・エンディアン順に実行します。

  FOR x=250:1:260 {
    ZZDUMP $NCONVERT(x,"U2",1) }
  QUIT

関連項目

FeedbackOpens in a new tab