Categories:
.NET (357)
C (330)
C++ (183)
CSS (84)
DBA (2)
General (7)
HTML (4)
Java (574)
JavaScript (106)
JSP (66)
Oracle (114)
Perl (46)
Perl (1)
PHP (1)
PL/SQL (1)
RSS (51)
Software QA (13)
SQL Server (1)
Windows (1)
XHTML (173)
Other Resources:
How can I manipulate individual bits??
How can I manipulate individual bits??
✍: Guest
Bit manipulation is straightforward in C, and commonly done. To extract (test) a bit, use the bitwise AND (&) operator, along with a bit mask representing the bit(s) you're interested in:
value & 0x04
To set a bit, use the bitwise OR (| or |=) operator:
value |= 0x04
To clear a bit, use the bitwise complement (~) and the AND (& or &=) operators:
value &= ~0x04
(The preceding three examples all manipulate the third-least significant, or 2**2, bit, expressed as the constant bitmask 0x04.)
To manipulate an arbitrary bit, use the shift-left operator (<<) to generate the mask you need:
value & (1 << bitnumber)
value |= (1 << bitnumber)
value &= ~(1 << bitnumber)
Alternatively, you may wish to precompute an array of masks:
unsigned int masks[] =
{0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
value & masks[bitnumber]
value |= masks[bitnumber]
value &= ~masks[bitnumber]
To avoid surprises involving the sign bit, it is often a good idea to use unsigned integral types in code which manipulates bits and bytes.
2015-02-20, 1554👍, 0💬
Popular Posts:
How do I use a scriptlet to initialize a newly instantiated bean? A jsp:useBean action may optionall...
How To Create an Array in PL/SQL? - Oracle DBA FAQ - Introduction to PL/SQL If you want create an ar...
How To Specify Two Background Images on a Page? - CSS Tutorials - Page Layout and Background Image D...
How To Remove the Top White Space of Your Web Page? - CSS Tutorials - Introduction To CSS Basics The...
.NET INTERVIEW QUESTIONS - Where do you specify session state mode in ASP.NET ? The following code e...