第三章 Caché 函数大全 $BITCOUNT 函数

文章目录

第三章 Caché 函数大全 $BITCOUNT 函数

返回位串中的位数。

大纲

$BITCOUNT(bitstring,bitvalue)

参数

  • bitstring 计算结果为位串的表达式。可以是任何类型的变量,$FACTOR,用户定义的函数或oref.prop.. propi%prop属性引用。
  • bitvalue 可选-要在位串中计数的值(0或1)。

描述

$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

猜你喜欢

转载自blog.csdn.net/yaoxin521123/article/details/108192327