【发布时间】:2012-11-13 06:25:41
【问题描述】:
我是 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 执行之前再次调用该函数,那么这些位实际上是如何被打印出来的?
【问题讨论】:
-
查看递归。人们通常会问为什么有些东西是倒退的,但我想在这种情况下它对你很有效。
-
阅读并理解递归的概念。它是计算机科学中最重要和最强大的概念之一。不了解递归,你就无法成为一名优秀的程序员。
-
谢谢,不久前我开始使用在线教程学习 C++。当我浏览内容时,我意识到它后来涵盖了递归。不知道自己在做什么是我的坏事:*(
-
用铅笔和纸完成一个简单的例子(例如
binaryConvert(5))。
标签: c++ binary type-conversion decimal