[C/C++] Cプログラミングの落とし穴 1.4 整数定数 P9 番外 : 2進数への変換

『Cプログラミングの落とし穴』(A.コーニグ, 1990)
[M1 Mac, Big Sur 11.6.8, clang 13.0.0, NO IDE]

本の内容とは関係ないのですが、C++で10進数から2進数へ変換してみました。

参考にしたDelftStackのレファレンスサイトが思いっきり間違っていたので驚きました。弘法も筆の誤りとはこのことでしょうか。

#include <cppstd.h>

string toBinary(int n)
{
    string r;
    while (n != 0){
        r = ( n % 2 == 0 ? "0" : "1" ) + r; // 参考サイトでは末尾に結合(正しくは先頭に結合)
        cout << "r: " << r.c_str() << endl;
        n /= 2;
    }
    return r;
}

int main() {
    int number = 50;
    
    string bin = toBinary(number);

    cout << "decimal: " << number << endl;
    cout << "binary : " << bin << endl;

    return 0;
}
--------------------------------------------------
出力
--------------------------------------------------
r: 0
r: 10
r: 010
r: 0010
r: 10010
r: 110010
decimal: 50
binary : 110010

参考サイト