Bitwise Operators

When you need to work with numbers bit by bit, as when working with the mode bits returned by stat, you’ll need to use the bitwise operators. These operators perform binary math operations on values. The bitwise-and operator (&) reports which bits are set in the left argument and in the right argument. For example, the expression 10 & 12 has the value 8. The bitwise-and needs to have a one-bit in both operands to produce a one-bit in the result. That means that the logical-and operation on ten (which is 1010 in binary) and twelve (which is 1100) gives eight (which is 1000, with a one-bit only where the left operand has a one-bit and the right operand also has a one-bit). See Figure 11-1.

Bitwise-and addition

Figure 11-1. Bitwise-and addition

The different bitwise operators and their meanings are shown in Table 11-2.

Table 11-2. Bitwise operators

Expression

Meaning

10 & 12

Bitwise-and; which bits are true in both operands (this gives 8)

10 | 12

Bitwise-or; which bits are true in one operand or the other (this gives 14)

10 ^ 12

Bitwise-xor; which bits are true in one operand or the other but not both (this gives 6)

6 << 2

Bitwise shift left; shift the left operand the number of bits shown by the right operand, adding zero-bits at the least-significant places (this gives 24)

25 >> 2

Bitwise shift right; shift the left operand the number of bits shown by the right operand, ...

Get Learning Perl, Fourth Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.