字符串和二进制串相互转换(C++)

一、字符转化成二进制

#include 
#include using namespace std;int main()
{//字符转化成二进制串bitset<8> bits = bitset<8>('a');bitset<1> tmp;//二进制翻转for(int i=0;i<4;i++){tmp[0] = bits[i];bits[i] = bits[7-i];bits[7-i] = tmp[0];}//输出for(int i=0;i<8;i++)cout<<bits[i];}

二、字符串转化成二进制字符串

#include 
#include 
#include 
#include 
using namespace std;//将8位字符串转化为64bit
string StrToBitStr(string str)
{bitset<64> bstr ;for(int i=0;i<8;i++){bitset<8> bits =  bitset<8>(str[i]);cout<<str[i]<<endl;for(int j = 0;j<8;j++){bstr[i*8+j] = bits[7-j];}}string s = bstr.to_string();//添加一个翻转操作reverse(begin(s),end(s));return s;
}int main()
{string  bstr = StrToBitStr("generate");cout<<bstr<<endl;
}

三、二进制字符串转化成字符串

#include 
#include 
#include 
#include 
using namespace std;//将8位字符串转化为64bit
string StrToBitStr(string str)
{bitset<64> bstr ;for(int i=0;i<8;i++){bitset<8> bits =  bitset<8>(str[i]);cout<<str[i]<<endl;for(int j = 0;j<8;j++){bstr[i*8+j] = bits[7-j];}}string s = bstr.to_string();//添加一个翻转操作reverse(begin(s),end(s));return s;
}
//将64bit二进制字符串转化为字符串
string BitStrToStr(string bstr)
{string str="";//每八位转化成十进制,然后将数字结果转化成字符int sum;for(int i=0;i<bstr.size();i+=8){sum=0;for(int j=0;j<8;j++)if(bstr[i+j] == '1')sum = sum*2+1;elsesum = sum*2;str =str+char(sum);}return str;}
int main()
{string  bstr = StrToBitStr("generate");cout<<bstr<<endl;cout<<BitStrToStr(bstr)<<endl;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部