- 题目描述
- 二进制、十进制互相转化
- 思路
- 二进制->十进制:高位开始,逢1平方后相加
- 十进制->二进制:mod 2法
代码:
#include
#include
#include
#include
using namespace std;
//十进制->二进制
void d2b(int d, string& s)
{
while (1)
{
int t = d%2;
if (t == 1) s+=’1’;
else s+=’0’;
d/=2;
if (d == 0) break;
}
reverse(s.begin(), s.end());
}
//二进制->十进制
void b2d(long long int& d, string s)
{
int len=s.size();
d = 0;
for (int i=0; i < len; i++)
{
if (s[i] == ‘1’)
{
long long int t=pow(2, len-i-1);
d += t;
}
}
}