getbits function in c

Implement a function getbits, that returns the(right adjusted) n bits that begin at position p of an integer. Assume bit position 0 is at the right end and that n and p are sensible positive values.


  1. unsigned getbits(unsigned x, int p, int n)
    return (x >> (p+1-n)) & ~(~0 << n);

  2. can bit shiftin be used to check divisibility by 3... just wondering.....

  3. @shaunak yes bit shifting can be used to check divisibility by 3.
    you can do it using three state variables(in case of 3)for storing remainder information 0,1,2.
    Moving from left to right in bitwise representation of any number follow the rule below.

    0(0) - 0
    0(1) - 1
    1(0) - 2
    1(1) - 0
    2(0) - 1
    2(1) - 2

    start state is 0 and final state is also 0.
    make a state diagram and u will be able to find out if it is divisible by 3 or not.


Post a Comment

Popular posts from this blog