簡體   English   中英

在 C++ 中使用十六進制進行位掩碼

[英]Bit masking with hexadecimal in c++

我需要用十六進制變量以二進制形式屏蔽我的輸出。 我是否需要將二進制輸出轉換為十六進制(或將十六進制變量轉換為二進制)? 或者在 C++ 中有什么方法可以直接屏蔽它們並將其存儲到一個新變量中?

#Edit :二進制輸出存儲到std::bitset變量。

您的問題中沒有提到 bitset 的使用,下次改進。 您還需要為十六進制值創建一個位掩碼。 然后你可以只 & 位掩碼

#include <bitset>
#include <iostream>

int main()
{
    std::bitset<8> value{ 0x03 };
    std::bitset<8> mask{ 0x01 };
    std::bitset<8> masked_value = value & mask;

    std::cout << value.to_string() << " & " << mask.to_string() << " = " << masked_value.to_string() << "\n";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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