簡體   English   中英

初始化后如何從字符串中分配位集值

[英]How to assign bitset value from a string after initializaion

我知道可以使用整數或0和1的字符串來初始化位集,如下所示:

bitset<8> myByte (string("01011000")); // initialize from string

無論如何,初始化后是否可以使用上述字符串來更改位集的值?

是的,重載的bitset::[]運算符返回一個bitset::reference類型,該類型允許您以普通布爾值訪問單個位,例如:

myByte[0] = true;
myByte[6] = false;

您甚至還具有其他一些功能

myByte[0].flip(); // Toggle from true to false and vice-versa
bool value = myByte[0]; // Read the value and convert to bool
myByte[0] = myByte[1]; // Copy value without intermediate conversions

編輯:沒有重載=運算符可以更改字符串中的單個位(它應該是字符),但是您可以執行以下操作:

myByte[0] = myString[0] == '1';

或搭配:

myByte[0] = bitset<8>(string("00000001"))[0];
myByte[0] = bitset<8>(myBitString)[0];

相當於:

myByte[0] = bitset<1>(string("1"))[0];

就像是

myByte = bitset<8>(string("01111001"));

應該可以。

暫無
暫無

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

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