私は C++ の初心者で、今日は 10 進数を 2 進数に変換する小さなプログラムを自分で作成しようと考えました。コードは次のようになります。
#include <iostream>
void binaryConvert(int);
int main() {
using namespace std;
cout << "Enter decimal number for conversion:" << endl;
int dec;
cin >> dec;
binaryConvert(dec);
}
void binaryConvert(int number) {
using namespace std;
while(number > 0) {
int bin = number % 2;
number /= 2;
cout << bin;
}
}
論理的には、このプログラムはバイナリを逆に出力します。このコードに出くわしたときに2進数が正しい方法で表示されるように、2進数の順序を逆にする方法を見つけようと長い時間を費やしました:
void binaryConvert(int number) {
using namespace std;
if(number > 0) {
int bin = number % 2;
number /= 2;
binaryConvert(number);
cout << bin;
}
}
おそらくばかげた質問であることは知っていますが(私はまったくの初心者です)、このコードがビットを正しい順序で出力する理由がわかりません。また、 cout が実行される前に関数が再度呼び出された場合、ビットが実際に出力されるのはなぜですか?