저는 C++의 총 초보자입니다. 오늘은 10 진수를 2 진수로 변환하는 작은 프로그램을 작성하겠습니다. 코드는 다음과 같습니다.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;
}
}
논리적으로이 프로그램은 이진수를 다른 방식으로 인쇄합니다.
void binaryConvert(int number) {
using namespace std;
if(number > 0) {
int bin = number % 2;
number /= 2;
binaryConvert(number);
cout << bin;
}
}
나는 그것 아마 알고 : 나는 이진수 주위 올바른 방법으로 표시 할 수 있도록 나는이 코드 조각을 건너 왔을 때 이진 숫자의 순서를 반전하는 방법을 알아 내려고 긴 시간을 보냈다 어리석은 질문 (나는 절대 초보자이다.) 그러나이 코드가 올바른 순서로 비트를 인쇄하는 이유를 알 수 없다. 또한 cout이 실행되기 전에 함수가 다시 호출되면 비트가 실제로 어떻게 인쇄됩니까?
재귀를 살펴보십시오. 사람들은 대개 왜 거꾸로 있는지 묻습니다.하지만이 경우에는 잘 작동하고있는 것 같습니다. – chris
재귀의 개념을 읽고 이해하십시오. 그것은 컴퓨터 과학에서 가장 중요하고 강력한 개념 중 하나입니다. 재귀를 이해하지 않고도 훌륭한 프로그래머가 될 수는 없습니다. – piokuc
고마워, 나는 온라인 자습서를 사용하여 너무 오래 전에 C++을 배우기 시작했다. 내용을 탐색 할 때 나중에 재귀를 다룰 수 있다는 것을 깨달았습니다. * ( – whatonearthisstack