私は質問convert bitset to int in c++ を読んでいて、ちょっと、それはうまくいかない、私はすでに試しました。しかし、それから私は試し始め、すぐに次のことを発見しました:
#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 より小さいビットセットを符号付き整数にキャストするにはどうすればよいでしょうか?
明確化: 保持されたビットセットを構築するときに使用される 10 ベースの値を使用して、signed int にキャストバックしたいと考えています。「符号付き整数をビットセットに格納」
これをgcc 4.6.2、win 7のmingw32で試しましたが、cスタイルのキャストでも同じ結果が得られました(int)