0

dynamic_bitset :: to_ulong()を使用して2進数を10進数に変換しようとすると、奇妙なことが起こりました。私の元の番号は1010101で、10進数で85です。ただし、次のコードは代わりに55を出力します。私はそれを理解することはできません。私のコンパイラはMingWです。

boost::dynamic_bitset<> db(10,BOOST_BINARY(1010101));
cout<<db.to_ulong()<<endl;  //should be 85.
4

1 に答える 1

1

10進数の85は16進数の0x55です。iostreamフラグを確認してください。

#include <iostream>
#include <iomanip>

std::cout << std::dec << n << std::endl;  // formats as decimal
于 2012-09-20T12:40:54.073 に答える