我是 C++ 的初学者,今天我想自己写一个小程序,将十进制数转换为二进制数。代码看起来像这样:
#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;
}
}
从逻辑上讲,这个程序会以相反的方式打印二进制文件。我花了很长时间试图弄清楚如何反转二进制数字的顺序,以便在遇到这段代码时二进制数字会以正确的方式出现:
void binaryConvert(int number) {
using namespace std;
if(number > 0) {
int bin = number % 2;
number /= 2;
binaryConvert(number);
cout << bin;
}
}
我知道这可能是一个愚蠢的问题(我是一个绝对的初学者),但我不明白为什么这段代码会以正确的顺序打印这些位。此外,如果在 cout 执行之前再次调用该函数,那么这些位实际上是如何被打印出来的?