#include <iostream>
using namespace std;
struct Inst
{
int num1;
int num2;
int num3;
};
int bitCpy(int *field, int b, int c, int d)
{
int range = d - c;
b <<= (32 - d);
b >>= (32 - range);
*field = b; // a.num1, a.num2, a.num3 ... etc
return b;
}
int main()
{
Inst i = {};
bitCpy(&(i.num1), 12345, 0, 31);
bitCpy(&(i.num2), 67890, 0, 31);
cout << i.num1 << endl;
cout << i.num2 << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEluc3QKewoJaW50IG51bTE7CglpbnQgbnVtMjsKCWludCBudW0zOwp9OwoKaW50IGJpdENweShpbnQgKmZpZWxkLCBpbnQgYiwgaW50IGMsIGludCBkKQp7CiAgICBpbnQgcmFuZ2UgPSBkIC0gYzsKICAgIGIgPDw9ICgzMiAtIGQpOwogICAgYiA+Pj0gKDMyIC0gcmFuZ2UpOwogICAgKmZpZWxkID0gYjsgLy8gYS5udW0xLCBhLm51bTIsIGEubnVtMyAuLi4gZXRjCiAgICByZXR1cm4gYjsKfQoKaW50IG1haW4oKQp7CglJbnN0IGkgPSB7fTsKCWJpdENweSgmKGkubnVtMSksIDEyMzQ1LCAwLCAzMSk7CgliaXRDcHkoJihpLm51bTIpLCA2Nzg5MCwgMCwgMzEpOwoJY291dCA8PCBpLm51bTEgPDwgZW5kbDsKCWNvdXQgPDwgaS5udW0yIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==