Chapter 11. Bit Operations
To be or not to be, that is the question.
This chapter discusses bit-oriented operations. A bit is the smallest unit of information; normally represented by the values 1 and 0. (Other representations include on/off, true/false, and yes/no.) Bit manipulations are used to control the machine at the lowest level. They allow the programmer to get âunder the hoodâ of the machine. Many higher-level programs will never need bit operations. Low-level coding such as writing device drivers or pixel-level graphic programming requires bit operations.
Eight bits together form a byte, represented by the C++
data type char. A byte might contain
the following bits: 01100100.
The binary number 01100100 can also be written as the hexadecimal number 0x64. (C++ uses the prefix â0xâ to indicate a hexadecimalâbase 16ânumber.) Hexadecimal is convenient for representing binary data because each hexadecimal digit represents 4 binary bits. Table 11-1 gives the hexadecimal (hex) to binary conversion.
Thus, the hexadecimal number 0xAF represents the binary number 10101111.
Table 11-1. Hex and binary
Hex | Binary | Hex | Binary |
---|---|---|---|
0 | 0000 | 8 | 1000 |
1 | 0001 | 9 | 1001 |
2 | 0010 | A | 1010 |
3 | 0011 | B | 1011 |
4 | 0100 | C | 1100 |
5 | 0101 | D | 1101 |
6 | 0110 | E | 1110 |
7 | 0111 | F | 1111 |
Bit Operators
Bit, or bitwise, operators allow the programmer to work on individual bits. For example, a short integer holds 16 bits (on most machines). The bit operators treat each of these as an independent bit. By contrast, an add operator treats ...
Get Practical C++ Programming, 2nd 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.