Extract number in bits from b1 to b4 of each byte

Question | Apr 29, 2016 | hkumar 

We want to change each byte of an int to the number in bits from b1 to b4 of that byte. The bits of a byte are numbered from 0 to 7 as b7..b0. As an example take this int in C++:

int x = 0x1A390B45;
// Decimal 439946053
// Binary 00011010 00111001 00001011 01000101

This is a (partial) C++ solution we have:

unsigned char* p=(unsigned char*)&x;
for(int i=0; i < sizeof(int); i++) {
    /* ?? */

We have omitted one line of code above for you to fill in. Which one of following choices should replace the comment (/* ?? */) in above code?