作者:翟天保Steven
版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处
场景需求
十进制转二进制经常用到,比如处理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;
}
测试效果
如上图所示,任意输入一个数字,函数会将该十进制数字转换为二进制字符,字符用vector按序存储。
如果函数有什么可以改进完善的地方,非常欢迎大家指出,一同进步何乐而不为呢~
如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!