『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