Using Bit-Wise Operations

More often than not, when working with the SPRM values, you will only be interested in certain bits of each 16-bit value. The “bit-wise” operations (and, or, and exclusive or), make it possible to mask the bits that are not needed, allowing you to determine the states of the specific bits you need.

Note: You need to have a basic understanding of working with binary numbers to be able to use these operations.

Suppose you need to find out whether the DVD player is configured for a 4:3 or 16:9 aspect ratio monitor. To determine this, you only need to look at bits 10 and 11 of SPRM 14. You can use the “bit-wise and” operation to mask all bits except 10 and 11, making it possible to easily determine the aspect ratio status without having to be concerned with the other bits.

Figure. Bit-wise example table.

Referring to the above table, the x’s in the SPRM 14 value represent bits that are not needed. Bits 10 and 11 use “0/1” to indicate bits that you want to retain—these may be set to either 0 or 1. When performing an AND operation, placing 0 in the bits you want to mask results in their being cancelled out, regardless of their state. Placing 1 in the bits you want to retain passes them to the result as is—a 0 is still a 0 and a 1 is still a 1. In this case, an AND value of 3072 produces the proper masking.

The value of the result produces four possible answers: 0, 1024, 2048, and 3072. In the case of SPRM 14, 0 indicates the DVD player is set to 4:3, and 3072 indicates it is set to 16:9 (the values of 1024 and 2048 are either not specified or reserved).