1281: 【基础】十六进制转二进制(1306)
内存限制:16 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:4
解决:3
题目描述
请将一个不超过100位的十六进制数转换为二进制数!
输入
一个不超过100位的十六进制整数
输出
该数对应的二进制数!
样例输入 复制
123456789ABCDEF
样例输出 复制
100100011010001010110011110001001101010111100110111101111
提示
#include<bits/stdc++.h>
using namespace std;
string t[16]=
{"0000","0001","0010","0011","0100","0101","0110","0111","1000","1001","1010","1011","1100","1101","1110","1111"
};
int main(){
//s:
string s,r;
cin>>s;
//s="1A5"
//s[i]转换为0~15之间的整数,然后再求对应的4位2进制
int x;
for(int i=0;i<s.size();i++){
//如果是0~9
if(isdigit(s[i])){
x=s[i]-'0';
}else{
x=s[i]-'A'+10;
}
r=r+t[x];
}
//删除前导0
//000110101111
//当r[0]是'0',则删除
while(r[0]=='0'){
r.erase(0,1);
}
if(r==""){
cout<<0;
}else{
cout<<r;
}
return 0;
}