我试图将十进制数转换为长度为27
的位集,然后使用按位运算符从该位集中检索MSB(最左边的位)。例如,数字67108865
表示为100000000000000000000000001
,而MSB是1
。另一个示例是数字1
,它表示为000000000000000000000000001
,而MSB是0
。
以下是我的C++代码:
unsigned int value = 67108865;
bitset<27> bs(value);
int most_significant_bit = bs >> (sizeof(value)*8 - 1) & 1;
cout << most_significant_bit << endl;
但是,我收到以下错误:
如何使用按位运算符检索MSB?
最佳答案
只需使用operator[]
获得最高有效位。
bitset<27> bs(value);
int ms_bit = bs[bs.size()-1];
关于c++ - C++:如何获取位集的MSB(最高有效位)(使用按位运算符)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61217105/