繁体   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