# $BITCOUNT

## Synopsis

$BITCOUNT(bitstring,bitvalue)

### Parameters

Argument | Description |
---|---|

bitstring | An expression that evaluates to a bitstring. Can be a variable of any type, $FACTOR, a user-defined function, or an oref.prop, ..prop, or i%prop property reference. |

bitvalue | Optional — The value (0 or 1) to count within the bitstring. |

## Description

The $BITCOUNT function counts the number of bits within a bitstring. A bitstring is an encoded string which is interpreted by the system as a series of bits. You can create a bitstring using $BIT or $BITLOGIC.

$BITCOUNT(bitstring) returns the number of bits in bitstring.

$BITCOUNT(bitstring, bitvalue) returns the number of bits of type bitvalue (0 or 1) in bitstring.

The maximum bitstring length is 262,104 bits (32763 x 8).

Specifying a bitstring value that is not a Caché encoded bitstring generates an <INVALID BIT STRING> error. For further information, refer to General Information on Bitstring Functions.

## Examples

If bitstring= [0,0,1,1,0], then the result of $BITCOUNT(bitstring) is 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)

If bitstring = [0,0,1,1,0], then the result of $BITCOUNT(bitstring,0) would be 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)

The following example returns the number of 1 bits in a random 16-bit bitstring generated by $FACTOR:

SET x=$RANDOM(65536) FOR i=1:1:16 {WRITE $BIT($FACTOR(x),i) } WRITE !,"Number of 1 bits=",$BITCOUNT($FACTOR(x),1)