Hello,
I have a 64-bit uint64_t number:
Code:
Primitive<uint64_t> b = 0xCCCCCCCC00000000;
I need to save the first 31 (most important) bits - 7FFFFFFE.
I found this solution in the Internet:
Code:
start = (((b)>>(first)) & ((1<<(((last+1)-(first))))-1));
but in my case for this code:
Code:
Primitive<uint64_t> start = (((b)>>(32)) & ((1<<(((63+1)-(32))))-1));
I get an error: left shift count >= width of type
And even if I change 63 to 62:
Code:
Primitive<uint64_t> start = (((b)>>(32)) & ((1<<(((62+1)-(32))))-1));
I get: error: integer overflow in expression
Any tips? Thanks.