2進法に変換する方法

C++で、10進数を2進数に変換する方法の備忘録です。

問題

abc014 B-価格の合計

やりたいこと

入力で受け取った10進数を2進数に変換したい。

結論

bitsetを利用する

#include<bits/stdc++.h>
using namespace std;

int main() {
    // n: 作りたい2進数の桁数
    // m: 2進数にしたい10進数の数
    // bitset<n> test(m);

    // 5を4桁の2進数に変換したい場合  
    bitset<4> s(5);
    cout << s << endl;

    // +α
    // 2進数から10進数への変換には, to_ullong()を利用する.
    cout << s.to_ullong() << endl;

    // +α
    // 左シフトを利用して, 2のk乗を得るために 1 << k という書き方をよくする.
    // 1 << 3 = 8となる.
    // 1を3ビット左シフトするので, 1000 2^3 = 8 となる.
    cout << (1 << 3) << endl;  
}

コメント