![](/img/trans.png)
[英]How to query if any bit in a range is set in a C++ std::bitset?
[英]How to select first 8 bit from bitset<16> in c++?
我有一個變量,它的類型是bitset <16>。 我想得到我的變量的前8位並將其放入char變量。 我知道如何將bitset轉換為char,但我不知道如何選擇前8位並將其轉換為char。
如果你通過“前8位”談論8-MSB,考慮使用>>運算符:
#include <iostream>
int main() {
std::bitset<16> myBits(0b0110110001111101);
char reg = 0;
reg = static_cast<char>(myBits.to_ulong() >> 8);
}
如果val的值表示大於bitset大小,則僅考慮val的最低有效位。
所以另一個解決方案可能是
#include <iostream>
int main() {
std::bitset<16> myBits16(0b0110110001111101);
std::bitset<8> myBits8(myBits16.to_ulong());
char reg = static_cast<char>(myBits8.to_ulong());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.