场景需求
十进制转二进制经常用到,比如处理ip和子网掩码数据时,而且这可以加快运算速度,编程时更可以减少时间复杂度。
话不多说,下方为具体实现函数和测试代码。
功能函数代码
/** * @brief dec2bin 十进制转二进制 * @param num 十进制数字 * @param input 二进制字符 * @return */ void dec2bin(int num, vector<char> &input) { for (int i = 0; i < 8; ++i) { input.push_back((num & 1)+'0'); num = num >> 1; } }
C++测试代码
#include <iostream> #include <vector> using namespace std; /** * @brief dec2bin 十进制转二进制 * @param num 十进制数字 * @param input 二进制字符 * @return */ void dec2bin(int num, vector<char> &input) { for (int i = 0; i < 8; ++i) { input.push_back((num & 1)+'0'); num = num >> 1; } } int main() { int num; cout << endl << " please input a number:" << endl << " "; cin >> num; vector<char> test; dec2bin(num, test); cout << " "; for (auto i=test.end();i!=test.begin();--i) { cout << *i ; } return 0; }
测试效果
图1 计算结果图
如上图所示,任意输入一个数字,函数会将该十进制数字转换为二进制字符,字符用vector按序存储。
如果函数有什么可以改进完善的地方,非常欢迎大家指出,一同进步何乐而不为呢~
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!