文章
166
粉丝
68
获赞
855
访问
61.6k
#include <bits/stdc++.h>
using namespace std;
int main() {
string s;
while(cin>>s){
vector<int>a;
for(auto x:s){
if(isdigit(x))a.push_back(x-'0');
else a.push_back(x-'a'+10);
}
long long ans=0;
for(auto x:a){
ans*=12;
ans+=x;
cout<<x<<' ';
}cout<<endl;
cout<<ans<<endl;
bitset<32>b(ans);
string binary=b.to_string();
int i=0;
for(auto x:binary){
if(i==8){
cout<<' ';
i=0;
}
cout<<x;
i++;
}cout<<endl;
}
}
这里顺便介绍一下bitset用法,他是使用int或者01字符串生成一个bool的特殊数组,里面我们可以用set函数对某一位进行修改,true就是1,false就是0,如果给他一个参数如bitset<32>,他可以生成一个定长的结构,使用to_string方法则可以把这个数组转换成string01模式,对于本题,我们就可以直接输出了,注意,因为需要8位隔开,所以增加一个计数器即可。
登录后发布评论
暂无评论,来抢沙发