#include <iostream>
#include <bitset>
using namespace std;
int main()
{ bitset<128> bitvec3(0xfff1);
unsigned long ulong =bitvec3.to_ulong();
cout<<"before flip:ulong="<<ulong<<endl;
bitvec3.flip();
ulong=bitvec3.to_ulong();
cout<<"after flip:ulong="<<ulong<<endl;
return 0;
}

发生了溢出的错误,因为size of unsigned long is 4;
参考文献:http://technet.microsoft.com/zh-cn/library/hkdb42ah(v=vs.71).aspx
本文探讨了使用C++实现位翻转操作时遇到的溢出问题,并给出了具体的代码示例。通过分析bitset类的使用及unsigned long类型的数据范围限制,解释了溢出的原因。
589

被折叠的 条评论
为什么被折叠?



