The routines are implemented as macros. In this way they do not introduce overhead. But be aware that the expressions are not evaluated before the call and there is no type checking.
Name | IN/OUT | Recomended type | Description | Acesses |
nr | IN | unsigned int unsigned short unsigned char | Input value | 1 read |
shift | IN | unsigned char | Bit number | 1 read |
bit=bits_get_bit(16,4); /* bit==1 */ bit=bits_get_bit(16,3); /* bit==0 */ bit=bits_get_bit(16,5); /* bit==0 */
Name | IN/OUT | Recomended type | Description | Acesses |
nr | IN | unsigned int unsigned short unsigned char | Input value | 1 read |
shift | IN | unsigned char | Rightmost bit | 1 read |
nrbits | IN | unsigned char, <32 | Nr of bits | 1 read |
bits=bits_get_bits(16,4,2); /* bits==1 */ bits=bits_get_bits(16,3,2); /* bits==2 */ bits=bits_get_bits(16,5,2); /* bits==0 */ bits=bits_get_bits(16,0,4); /* bits==0 */ bits=bits_get_bits(16,0,5); /* bits==16 */
Name | IN/OUT | Recomended type | Description | Acesses |
nr | IN | unsigned int unsigned short unsigned char | Input value | 1 read |
shift | IN | unsigned char | Rightmost bit | 1 read |
mask | IN | same as nr | Mask of bits | 1 read |
bits=bits_get_bits_mask(16,4,1); /* bits==1 */ bits=bits_get_bits_mask(16,3,1); /* bits==2 */ bits=bits_get_bits_mask(16,5,1); /* bits==0 */ bits=bits_get_bits_mask(16,0,15); /* bits==0 */ bits=bits_get_bits_mask(16,0,31); /* bits==16 */ bits=bits_get_bits_mask(16,0,16); /* bits==16 */ bits=bits_get_bits_mask(16,1,16); /* bits==0 */
Name | IN/OUT | Recomended type | Description | Acesses |
bit | IN | unsigned char | Bit value | 1 read |
shift | IN | unsigned char | Bit number | 1 read |
nr=bits_pos_bit(1,4); /* nr==16 */ nr=bits_pos_bit(1,3); /* nr=8 */ nr=bits_pos_bit(1,5); /* nr=32 */ nr=bits_pos_bit(0,<any value>); /* nr==0 */
Name | IN/OUT | Recomended type | Description | Acesses |
bits | IN | unsigned int unsigned short unsigned char | Bits value | 1 read |
shift | IN | unsigned char | Rightmost bit | 1 read |
nrbits | IN | unsigned char, <32 | Nr of bits | 1 read |
nr=bits_pos_bits(0,<any value>,<any value>); /* nr==0 */ nr=bits_pos_bits(<any value>,<any value>,0); /* nr==0 */ nr=bits_pos_bits(3,3,2); /* bits==24 */ nr=bits_pos_bits(4,3,2); /* nr==0 , 4&3=0 => ==bits_pos_bits(0,3,2)*/ nr=bits_pos_bits(2,5,2); /* nr==64 */ nr=bits_pos_bits(1,5,2); /* nr==32 */
Name | IN/OUT | Recomended type | Description | Acesses |
bits | IN | unsigned int unsigned short unsigned char | Bits value | 1 read |
shift | IN | unsigned char | Rightmost bit | 1 read |
mask | IN | same as nr | Mask of bits | 1 read |
nr=bits_pos_bits_mask(0,<any value>,<any value>); /* nr==0 */ nr=bits_pos_bits_mask(<any value>,<any value>,0); /* nr==0 */ nr=bits_pos_bits_mask(0xff,1,0xff); /* nr==0x1fe */ nr=bits_pos_bits_mask(0xff,8,0xef); /* nr==0xef00 == bits_pos_bits_mask(0xef,8,0xff)*/
Name | IN/OUT | Recomended type | Description | Acesses |
nr | IN | unsigned int unsigned short unsigned char | Value to be modified | 1 read |
shift | IN | unsigned char | Bit number | 2 reads |
bit | IN | unsigned char | New bit value | 1 read |
nr=bits_set_bit(16,4,0); /* nr==0 */ nr=bits_set_bit(16,4,1); /* nr==16 */ nr=16; nr1=bits_set_bit(nr,3,0); /* nr1==16 */ nr=16; nr=bits_set_bit(nr,3,1); /* nr==24 */
Name | IN/OUT | Recomended type | Description | Acesses |
nr | IN | unsigned int unsigned short unsigned char | Value to be modified | 1 read |
shift | IN | unsigned char | Rightmost bit | 2 reads |
nrbits | IN | unsigned char, <32 | Nr of bits | 2 reads |
bits | IN | unsigned char | New bit value | 1 read |
nr=16; nr1=bits_set_bits(nr,4,1,0); /* nr1==0 */ nr=16; nr1=bits_set_bits(nr,4,1,1); /* nr1==1 */ nr=16; nr=bits_set_bits(nr,3,1,0); /* nr==16 */ nr=16; nr=bits_set_bits(nr,3,1,1); /* nr==24 */ nr=bits_set_bits(16,3,2,0); /* nr==0 */ nr=16; nr1=bits_set_bits(nr,3,2,1); /* nr1==8 */ nr=16; nr1=bits_set_bits(nr,3,2,2); /* nr1==16 */
Name | IN/OUT | Recomended type | Description | Acesses |
nr | IN | unsigned int unsigned short unsigned char | Value to be modified | 1 read |
shift | IN | unsigned char | Rightmost bit | 2 reads |
mask | IN | unsigned char, <32 | Mask of bits | 2 reads |
bits | IN | unsigned char | New bit value | 1 read |
nr=16; nr1=bits_set_bits_mask(nr,4,1,0); /* nr1==0 */ nr=16; nr1=bits_set_bits_mask(nr,4,1,1); /* nr1==16 */ nr=16; nr1=bits_set_bits_mask(nr,3,1,0); /* nr1==16 */ nr=16; nr1=bits_set_bits_mask(nr,3,1,1); /* nr1==24 */ nr=16; nr1=bits_set_bits_mask(nr,3,3,0); /* nr1==0 */ nr=16; nr1=bits_set_bits_mask(nr,3,3,1); /* nr1==8 */ nr=16; nr1=bits_set_bits_mask(nr,3,3,2); /* nr1==16 */ nr=16; nr1=bits_set_bits_mask(nr,3,5,0); /* nr1==16 */ nr=bits_set_bits_mask(16,3,5,1); /* nr==24 */ nr=bits_set_bits_mask(16,3,5,4); /* nr==48 */
Top of the page. | Send comments to: Igor Sfiligoi |
Created | : | 17.1.1997 |
Last modified | : | 10.2.1997 |