$NCONVERT (ObjectScript)
数値を、8 ビット文字の文字列でエンコードされた 2 進数値に変換します。
構文
$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 が数値以外の値である (数値以外の文字が含まれている) 場合、InterSystems IRIS は文字列から数値への変換を実行します。数値以外の文字で始まる文字列は、0 に変換されます。
InterSystems IRIS は、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
関連項目
-
$SCONVERT 関数