[英]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.