节省从一个64位长的数字
问题描述:
特定位我有一个64位的uint64_t中号:节省从一个64位长的数字
Primitive<uint64_t> b = 0xCCCCCCCC00000000;
我需要保存第31位(最重要的)位 - 7FFFFFFE。
我发现在互联网这个解决方案:
start = (((b)>>(first)) & ((1<<(((last+1)-(first))))-1));
,但在我的情况下,此代码:
Primitive<uint64_t> start = (((b)>>(32)) & ((1<<(((63+1)-(32))))-1));
我得到一个错误:类型的左移计数> =宽度
即使我将63改为62:
Primitive<uint64_t> start = (((b)>>(32)) & ((1<<(((62+1)-(32))))-1));
我得到:错误:表达式中的整数溢出
任何提示?谢谢。
首先 - 指定语言和平台你的目标。当你放置数字字符(比如1