Cではchar型の配列を用いて変換したものを逆順に表示すればいいですが、かなり桁数が多いと配列オーバーを起こして今います。
C++ では というヘッダーファイルが用意されるのでpushしたあとにtopで2進数を表示し、popで削除を行えばできます。
以下が書いたプログラムになります。
[C++] std::stackを使った10進数を2進数に変換するプログラム
RE: [C++] std::stackを使った10進数を2進数に変換するプログラム
bitsetでやれたような気がしたけど,表示がちょっと面倒だな.
int main()
{
unsigned long Value = 0x1E7Au;
std::bitset BS( Value );
auto BinStr = BS.to_string();
//そのまま表示すると先頭側に0がいっぱい付くなぁ
std::cout << BinStr << std::endl;
//先頭側の要らない0を除いて表示するには,こんなんでいいか?
if( BS.none() )
{
std::cout << 0 << std::endl;
}
else
{
auto ShowBegin = BinStr.find_first_of( '1' );
std::cout << BinStr.substr(ShowBegin) << std::endl;
}
//
std::cin.ignore();
return 0;
}