3

给定两个整数;size并且offset,我将如何生成具有以下属性的位掩码;

MSD             LSD
1111 1111 0000 1111
          ^  ^
size = 4 -|  |
             |  
offset = 4  -|
4

1 回答 1

2

由于问题被标记为 c++,我将提供一个基于 STL 的解决方案:

bitset<NUM_BITS> bs(0);
bs = ((bs.flip() << size).flip() << offset).flip();

相同的代码分成几行:

bitset<NUM_BITS> bs(0);
bs.flip();
bs <<= size;
bs.flip();
bs <<= offset;
bs.flip();

性能考虑取决于读者。

于 2013-10-02T04:08:16.707 回答