Search results
Results from the WOW.Com Content Network
Bit fields can be used to reduce memory consumption when a program requires a number of integer variables which always will have low values. For example, in many systems, storing an integer value requires two bytes (16-bits) of memory; sometimes the values to be stored actually need only one or two bits.
Example of bit manipulation [ edit ] To determine if a number is a power of two, conceptually we may repeatedly do integer divide by two until the number won't divide by 2 evenly; if the only factor left is 1, the original number was a power of 2.
In addition, there is a class EnumSet, which represents a Set of values of an enumerated type internally as a bit vector, as a safer alternative to bit fields. The .NET Framework supplies a BitArray collection class. It stores bits using an array of type int (each element in the array usually represents 32 bits). [5]
For example, when shifting a 32 bit unsigned integer, a shift amount of 32 or higher would be undefined. Example: If the variable ch contains the bit pattern 11100101, then ch >> 1 will produce the result 01110010, and ch >> 2 will produce 00111001. Here blank spaces are generated simultaneously on the left when the bits are shifted to the right.
Bit fields allow efficient packaging of data in the memory. As we know, integer takes two bytes(16-bits) in memory. Some times we need to store value that takes less then 2-bytes. In such cases, there is wastages of memory. For example, if we use a variable temp to store value either 0 or 1.
This table illustrates an example of an 8 bit signed decimal value using the two's complement method. The MSb most significant bit has a negative weight in signed integers, in this case -2 7 = -128. The other bits have positive weights. The lsb (least significant bit) has weight 2 0 =1. The signed value is in this case -128+2 = -126.
For example: 0101 (decimal 5) OR 0011 (decimal 3) = 0111 (decimal 7) The bitwise OR may be used to set to 1 the selected bits of the register described above. For example, the fourth bit of 0010 (decimal 2) may be set by performing a bitwise OR with the pattern with only the fourth bit set: 0010 (decimal 2) OR 1000 (decimal 8) = 1010 (decimal 10)
This allows great flexibility: for example, all types can be 64-bit. However, several different integer width schemes (data models) are popular. Because the data model defines how different programs communicate, a uniform data model is used within a given operating system application interface. [9]