Bit Manipulation in The C Programming Language
C has direct support for bitwise operations that can be used for bit manipulation. In the following examples, n
is the index of the bit to be manipulated within the variable bit_fld
, which is an unsigned char
being used as a bit field. Bit indexing begins at 0, not 1. Bit 0 is the least significant bit.
- Set a bit
- Clear a bit
- Toggle a bit
- Test a bit
When using an array of bytes to represent set of bits, i.e., a bit array or bitset, the index of the byte in the array associated with a bit n
can be calculated using division:
where n
is the index of the given bit and CHAR_BIT
gives the number of bits in a C char
.
The index of the bit within the byte indexed by the above can be calculated via a modulo operation:
n % CHAR_BIT(Note: unsigned char
is typically used in C to represent a byte and CHAR_BIT
is most often 8 on modern processors. %
is the C modulo operator.)
Read more about this topic: Bit Manipulation
Famous quotes containing the words bit, manipulation, programming and/or language:
“He was made bit by bit, piece by piece. The undying monster. The triumphant climax of Frankensteins genius.”
—Edward T. Lowe, and Erle C. Kenton. Dr. Edelman (Onslow Stevens)
“Denotation by means of sounds and markings is a remarkable abstraction. Three letters designate God for me; several lines a million things. How easy becomes the manipulation of the universe here, how evident the concentration of the intellectual world! Language is the dynamics of the spiritual realm. One word of command moves armies; the word liberty entire nations.”
—Novalis [Friedrich Von Hardenberg] (17721801)
“If there is a price to pay for the privilege of spending the early years of child rearing in the drivers seat, it is our reluctance, our inability, to tolerate being demoted to the backseat. Spurred by our success in programming our children during the preschool years, we may find it difficult to forgo in later states the level of control that once afforded us so much satisfaction.”
—Melinda M. Marshall (20th century)
“Both the Moral Majority, who are recycling medieval language to explain AIDS, and those ultra-leftists who attribute AIDS to some sort of conspiracy, have a clearly political analysis of the epidemic. But even if one attributes its cause to a microorganism rather than the wrath of God, or the workings of the CIA, it is clear that the way in which AIDS has been perceived, conceptualized, imagined, researched and financed makes this the most political of diseases.”
—Dennis Altman (b. 1943)