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; }