您的位置:首页 > 其它

数值转换:十进制正整数转二进制

2009-11-02 13:08 330 查看
  今天朋友去面试,问到一基础题,实现正整数到二进制的转换。因为对基础掌握的不牢,此题并未能做出正确解答。我在给他讲解一番后,他恍然大悟。

  对于十进制正整数到二进制的转换其实很简单,用2辗转相除至结果为1,将余数和最后的1从下向上倒序写,就是整数所对应的二进制值。例如5的二进制就是101(如图):



通过观察,便能得出一递归过程:
]string Int2Bin(const int __int) {

string __bin = "";

if (__int/2 != 0)
__bin = Int2Bin(__int/2);

return __bin + char(ASCII_0 + __int%2);
}

ASCII_0是0的ASCII码值,定义如下:
]const int ASCII_0 = 48;

同是需要引用的头文件:
]#include <string>

using namespace std;

  以上的代码,便能实现正整数到二进制的转换。如果求职者因为这些简单的题目,而失去了工作的机会,那真的很可惜。平时应注意基础知识的掌握。对于基础掌握不牢,就算写了很多代码,那又怎样……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: