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

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

  对于十进制正整数到二进制的转换其实很简单,用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 using namespace std;

  以上的代码,便能实现正整数到二进制的转换。如果求职者因为这些简单的题目,而失去了工作的机会,那真的很可惜。平时应注意基础知识的掌握。对于基础掌握不牢,就算写了很多代码,那又怎样……

你可能感兴趣的:(数据结构及算法)