簡體   English   中英

根據向量修改char的位<bool>

[英]Modifying the bits of a char according to a vector<bool>

我有一個包含很多布爾值的向量。 當我在向量中達到1時,我開始讀取接下來的8個值作為位-我想根據這8個值來修改char。

例:

我有一個char c = 0; (00000000)。

根據矢量,我的8位是(10101010)。

我該如何將這些值分配給char位? 我可以將矢量用作遮罩嗎? 如果是這樣,怎么辦?

使用移位運算符<< 它將位移位一定量。

例如, 5 << 220 ,因為向左移位101的101是10100或二十。

vector<bool> v; // plus initialization

char c;   
for(size_t i = 0; i < v.size(); i++) {     
    c += v[i] << (v.size() - i - 1);
}

假設您要使用這個大字節序(最重要的位在前)。 如果要少字節序, (v.size() - i - 1)更改為i

暫無
暫無

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

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