$BITCOUNT (ObjectScript)
bitstring のビット数を返します。
構文
$BITCOUNT(bitstring,bitvalue)
引数
引数 | 説明 |
---|---|
bitstring | ビット文字列として評価される式。任意のタイプの変数、$FACTOR、ユーザ定義関数、または oref.prop、..prop、i%prop (インスタンス変数) プロパティ参照を指定できます。 |
bitvalue | オプション — ビット文字列内をカウントする値 (0 または 1) |
概要
$BITCOUNT 関数は、ビット文字列内のビットの数をカウントします。ビット文字列は、ビットの連続としてシステムに解釈される、エンコードされた文字列です。$BIT や $BITLOGIC を使用して、ビット文字列を作成することができます。
$BITCOUNT(bitstring) は、bitstring 内のビット数を返します。
$BITCOUNT(bitstring, bitvalue) は、bitstring 内の bitvalue (0 または 1) タイプのビット数を返します。
最大のビット文字列長は 262,104 ビット (32763 x 8) です。
InterSystems IRIS のエンコードされたビット文字列ではない bitstring 値を指定すると、<INVALID BIT STRING> エラーが生成されます。詳細は、"ビット文字列関数の概要" を参照してください。
例
bitstring = [0,0,1,1,0] の場合、$BITCOUNT(bitstring) の結果は 5 になります。
SET $BIT(a,1) = 0
SET $BIT(a,2) = 0
SET $BIT(a,3) = 1
SET $BIT(a,4) = 1
SET $BIT(a,5) = 0
WRITE !,$BITCOUNT(a)
bitstring= [0,0,1,1,0] の場合、$BITCOUNT(bitstring,0) の結果は 3 になります。
SET $BIT(a,1) = 0
SET $BIT(a,2) = 0
SET $BIT(a,3) = 1
SET $BIT(a,4) = 1
SET $BIT(a,5) = 0
WRITE !,"number of zero bits:",$BITCOUNT(a,0)
WRITE !,"number of one bits: ",$BITCOUNT(a,1)
次の例は、$FACTOR によって生成されたランダムな 16 ビットのビット文字列に含まれ、値が 1 であるビットの数を返します。
SET x=$RANDOM(65536)
FOR i=1:1:16 {WRITE $BIT($FACTOR(x),i) }
WRITE !,"Number of 1 bits=",$BITCOUNT($FACTOR(x),1)