#include <iostream>
#include <string>
short f( unsigned int number, int start, int end)
{
unsigned int mask = (1 << (end - start)) - 1;
return ( number >> start) & mask;
}
int main() {
short s1,s2,s3 = 0;
unsigned int addr = 4194624;
s1 = f( addr, 20, 31);
s2 = f( addr, 8, 19);
s3 = f( addr, 0, 7);
printf("%d\n", s1);
printf("%d\n", s2);
printf("%d\n", s3);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKc2hvcnQgZiggdW5zaWduZWQgaW50IG51bWJlciwgaW50IHN0YXJ0LCBpbnQgZW5kKQp7CiAgICB1bnNpZ25lZCBpbnQgbWFzayA9ICgxIDw8IChlbmQgLSBzdGFydCkpIC0gMTsKICAgIHJldHVybiAoIG51bWJlciA+PiBzdGFydCkgJiBtYXNrOwp9CgppbnQgbWFpbigpIHsKCQogICAgICAgICAgICBzaG9ydCBzMSxzMixzMyA9IDA7CiAgICAgICAgICAgIHVuc2lnbmVkIGludCBhZGRyID0gNDE5NDYyNDsKCiAgICAgICAgICAgIHMxID0gZiggYWRkciwgMjAsIDMxKTsKICAgICAgICAgICAgczIgPSBmKCBhZGRyLCA4LCAxOSk7CiAgICAgICAgICAgIHMzID0gZiggYWRkciwgMCwgNyk7CgogICAgICAgICBwcmludGYoIiVkXG4iLCBzMSk7CiAgICAgICAgIHByaW50ZigiJWRcbiIsIHMyKTsKICAgICAgICAgcHJpbnRmKCIlZFxuIiwgczMpOwoJcmV0dXJuIDA7Cn0=