我正在阅读convert bitset to int in c++的问题,并认为,嘿,这不起作用,我已经尝试过了。但后来我开始尝试并很快我发现,将bitset <a>转换为signed int,其中<32
#include <bitset>
#include <iostream>
int main()
{
std::bitset<31> b31(-1);
std::bitset<32> b32(-1);
std::cout<<static_cast<int>(b31.to_ulong())<<std::endl;
std::cout<<static_cast<int>(b32.to_ulong())<<std::endl;
return 0;
}
使输出
2147483647
-1
所以,我怎么投位集比32小符号整数?
CLARIFICATION:我想在构造保存的位集时使用10个碱基的值转换回signed int。
我已经用gcc 4.6.2,mingw32的上赢7试过这个“商店位集签署整数”,并与C风格得到相同的结果投(int)
FWIW,这将产生'-1 -1'在OSX x64与铿锵3.5 – WhozCraig 2014-12-09 12:08:55
好吧!我正要问我是否误解了'to_ulong()'规范或者它是否是编译器特定的。知道其他编译器如何处理这个问题会很有意思,例如MSVC,如果读者不想尝试,请阅读intel) – Schaki 2014-12-09 12:16:34