views:

107

answers:

0

I'm not looking for the answers to be given to me, just some direction on what I need to look at to get started.

/* copyLSB - set all bits of result to least significant bit of x
 * Example: copyLSB(5) = 0xFFFFFFFF, copyLSB(6) = 0x00000000
 * Legal ops: ! ~ & ^ | + << >>
 * Max ops: 5
 * Rating: 2
 */
int copyLSB(int x)
{
    return 0;
}

 

/* logicalShift - shift x to the right by n, using a logical shift
 * Can assume that 1 <= n <= 31
 * Examples: logicalShift(0x87654321,4) = 0x08765432
 * Legal ops: ~ & ^ | + << >>
 * Max ops: 16
 * Rating: 3 
 */
int logicalShift(int x, int n) {
    return 0;
}

 

/* bitCount - returns count of number of 1's in word
 * Examples: bitCount(5) = 2, bitCount(7) = 3
 * Legal ops: ! ~ & ^ | + << >>
 * Max ops: 40
 * Rating: 4
 */
int bitCount(int x) {
    return 0;
}