在传输过程中,有时为了数据传输方便,需要对数据进行打包传输。现在要求输入四个字符(只包含小写字母),将这四个字符的ASCII依次排列,排列为一个32位整数的形式进行传输。
输入格式
第一行包含一个整数N,表示样例个数。
每一行输入四个连续的小写字母。
输出格式
对于每四个小写字母,需要输出打包为32位整数的结果。
输入样例 复制
1
abcd
输出样例 复制
1633837924数据范围与提示
"abcd"中,
a的ASCII二进制编码为 01100001
b的ASCII二进制编码为 01100010
以此类推
所以'abcd'打包为32位无符号整数为
01100001011000100110001101100100
转化为10进制为1633837924
#include
#include
#include
#include
using namespace std;
string itos(int i)
{
stringstream s;
s << i;
return s.str();
}
int decToBin(int dec){
int result = 0, temp = dec, j = 1;
while(temp){
result = result + j * (temp % 2);
temp = temp / 2;
j = j * 10;
}
cout<< setw(8) << setfill('0') << result;
}
long int getNum(string str){
long int num=0;
for(int i=0;i<str.length();i++){
num=num*2+(str[i]-'0');
}
return num;
}
int main()
{
char c,d,e,f;
cin>>c>>d>>e>>f;
string c1= itos(decToBin((int)c));
string d1=itos(decToBin((int)d));
string e1=itos(decToBin((int)e));
string f1=itos(decToBin((int)f));
string s=c1+d1+e1+f1;
cout<<getNum(s);
return 0;
}****************