您的位置:首页 > 职场人生

Careercup - Microsoft面试题 - 24313662

2014-05-12 07:30 253 查看
2014-05-12 07:27

题目链接

原题:

Convert a base 2 number to a base 4 number


题目:把二进制数转化成四进制数。

解法:四是二的倍数,所以两位变一位就可以了。

代码:

// http://www.careercup.com/question?id=24313662 #include <iostream>
#include <string>
using namespace std;

string baseConvert2To4(string num)
{
string res;
int n = (int)num.size();
int i;

res.resize((n + 1) >> 1);
for (i = n - 2; i >= 0; i -= 2) {
res[(i >> 1) + (n & 1)] = ((num[i] - '0') << 1) + (num[i + 1] - '0') + '0';
}
if (n & 1) {
res[0] = num[0];
}

return res;
}

int main()
{
string num;

while (cin >> num) {
cout << baseConvert2To4(num) << endl;
}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: