返回位串中的位数。
$BITCOUNT(bitstring,bitvalue)
$FACTOR
,用户定义的函数或oref.prop
,.. prop
或i%prop
属性引用。$BITCOUNT
函数计算位串中的位数。位串是系统将其解释为一系列位的编码字符串。可以使用$BIT
或$BITLOGIC
创建一个位串。
$BITCOUNT(bitstring)
返回位串中的位数。
$BITCOUNT(bitstring,bitvalue)
返回位串中类型为bitvalue(0或1)的位数。
最大位串长度为262,104位(32763 x 8)。
指定不是Caché编码的位串的位串值会产生错误。
如果bitstring = [0,0,1,1,0]
,则$ BITCOUNT(bitstring)
的结果为5:
/// d ##class(PHA.TEST.Function).BITCOUNT()
ClassMethod BITCOUNT()
{
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)
}
DHC-APP>d ##class(PHA.TEST.Function).BITCOUNT()
5
如果bitstring = [0,0,1,1,0]
,则$BITCOUNT(bitstring,0)
的结果为3。
返回 0 或 1的个数。
/// d ##class(PHA.TEST.Function).BITCOUNT1()
ClassMethod BITCOUNT1()
{
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)
}
DHC-APP>d ##class(PHA.TEST.Function).BITCOUNT1()
number of zero bits:3
number of one bits: 2
以下示例返回由$FACTOR
生成的随机16位位串中1位的数目:
/// d ##class(PHA.TEST.Function).BITCOUNT2()
ClassMethod BITCOUNT2()
{
SET x=$RANDOM(65536)
FOR i=1:1:16 {WRITE $BIT($FACTOR(x),i) }
WRITE !,"Number of 1 bits=",$BITCOUNT($FACTOR(x),1)
}
DHC-APP>d ##class(PHA.TEST.Function).BITCOUNT2()
1000010101100101
Number of 1 bits=7
DHC-APP>d ##class(PHA.TEST.Function).BITCOUNT2()
0010000100100111
Number of 1 bits=6
DHC-APP>d ##class(PHA.TEST.Function).BITCOUNT2()
0011011000111101
Number of 1 bits=9
DHC-APP>d ##class(PHA.TEST.Function).BITCOUNT2()
1001011110101110
$FACTOR(5)
为固定32位
DHC-APP>w $BITCOUNT($FACTOR(5))
32