关注
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
相关推荐
11-15 18:12
北京航空航天大学 算法工程师 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
256939次浏览 2107人参与
# 学历or实习经历,哪个更重要 #
42455次浏览 315人参与
# 北方华创开奖 #
23338次浏览 260人参与
# 地方国企笔面经互助 #
2746次浏览 7人参与
# 0offer是寒冬太冷还是我太菜 #
884688次浏览 7885人参与
# 选完offer后,你后悔学本专业吗 #
12333次浏览 86人参与
# 应届生被毁约被毁意向了怎么办 #
27770次浏览 242人参与
# 你最想要的公司福利是? #
41114次浏览 137人参与
# 查收我的offer竞争力报告 #
18108次浏览 239人参与
# 如何一边实习一边秋招 #
986435次浏览 12604人参与
# 一觉醒来,我觉醒了超级打工人系统 #
3177次浏览 36人参与
# 面试体验感最好的是哪家? #
83408次浏览 814人参与
# 机械应届生薪资要多少才合适? #
12500次浏览 60人参与
# 如何写一份好简历 #
603903次浏览 8482人参与
# 嵌入式转岗的难度怎么样 #
11067次浏览 250人参与
# 秋招OC许愿 #
227526次浏览 1877人参与
# 秋招被确诊为…… #
58938次浏览 315人参与
# 来聊聊机械薪资天花板是哪家 #
65038次浏览 440人参与
# 你觉得第一学历对求职有影响吗? #
14967次浏览 121人参与
# 面试题刺客退退退 #
137735次浏览 2093人参与
# 总结:哪家公司面试体验感最差 #
26047次浏览 130人参与