簡體   English   中英

如何從c ++中的bitset <16>中選擇前8位?

[英]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);
}

std :: bitset構造函數doc

如果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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM