关注
string _hex2bits(char s)
{
int num;
if ('0' <= s &;&; s <= '9'){
num = s - '0';
} else{
num = s - 'A' + 10;
}
string str;
for (int i = 0; i < 8; i++)
{
int mod = num % 2;
str.push_back('0' + mod);
num = num / 2;
}
reverse(str.begin(), str.end());
return str;
}
int _bits2num(string&; str)
{
int result = 0;
int base = 1;
for (int i = str.length()-1; i >= 0; i--) {
if (str[i] == '1'){
result += base;
}
base *= 2;
}
return result;
}
char _num2char(int num)
{
assert(num >= 0 &;&; num <= 63);
if (0 <= num &;&; num <= 25)
{
return 'A' + (num - 0);
}
else if (26 <= num &;&; num <= 51)
{
return 'a' + (num - 26);
}
else if (52 <= num &;&; num <= 61)
{
return '0' + (num - 52);
}
else if (num == 62)
{
return '+';
}
else
{
return '//';
}
}
void hex2base64(string&; str)
{
transform(str.begin(), str.end(), str.begin(), ::toupper);
int mod = str.length() % 3;
mod = mod == 0 ? -1 : 3 - mod;
string tmp;
for (int i = 0; i < str.length(); i++){
tmp += _hex2bits(str[i]);
}
for (int i = 0; i+6 <= tmp.length(); i = i+6)
{
string base64bits = tmp.substr(i, 6);
int num = _bits2num(base64bits);
cout << _num2char(num);
}
for (int i = 0; i < mod+1; i++)
{
cout << '=';
}
}
int main()
{
string test1 = "1A2";
hex2base64(test1);
return 0;
}
查看原帖
3 3
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
- 1... 以Mentor视角,更喜欢有这些沟通技巧的实习生2.2W
- 2... 得物暑期实习oc1.6W
- 3... 来算一算你的offer究竟到手工资多少!(详细教程)1.0W
- 4... 【26届四段大厂】实习爆炸产出方法论 2.09485
- 5... 双非本秋招字节转正失败春招重新拿下字节和腾讯8986
- 6... 感觉在字节实习有点幸福了6382
- 7... 暑期实习后,如何完成学生到职场人的身份转换?5955
- 8... 28届现在真的找不到日常吗?5538
- 9... 💗 521凉面筋真好吃~记录一把本小女孩人生第一面5207
- 10... 就是说有些招聘要求别太离谱噢4220
正在热议
更多
# 毕业季,给职场新人一些建议 #
29960次浏览 500人参与
# 国企vs私企,怎么选? #
20464次浏览 168人参与
# 我的求职总结 #
31562次浏览 515人参与
# 辞职之后最想做的一件事 #
11881次浏览 173人参与
# 我的实习日记 #
2450505次浏览 25491人参与
# 选offer应该考虑哪些因素 #
22252次浏览 319人参与
# 小米硬件提前批进度交流 #
165059次浏览 1516人参与
# 为了秋招你都做了哪些准备? #
11231次浏览 169人参与
# 你想吐槽公司的哪些规定 #
18156次浏览 70人参与
# 晒一晒你收到的礼盒 #
63048次浏览 378人参与
# 薪资一样,你会选择去大厂还是小公司 #
16923次浏览 103人参与
# 硬件开发岗知多少 #
10347次浏览 111人参与
# 字节跳动工作体验 #
393317次浏览 4300人参与
# Offer比较,求稳定还是求发展 #
49790次浏览 241人参与
# 我的工作日记 #
100114次浏览 1281人参与
# 第一份工作应该只看薪资吗 #
139253次浏览 1462人参与
# 你想留在一线还是回老家? #
38751次浏览 454人参与
# 一人推荐一个值得去的通信/硬件公司 #
177061次浏览 1832人参与
# 你见过最离谱的招聘要求是什么? #
188905次浏览 1404人参与
# 工作中的卑微时刻 #
9190次浏览 56人参与