【基础】十六进制转二进制

描述

请将一个不超过100位的十六进制数转换为二进制数!

输入描述

一个不超过100位的十六进制整数

输出描述

该数对应的二进制数!

用例输入 1 

123456789ABCDEF

用例输出1

100100011010001010110011110001001101010111100110111101111

AC code

#include<bits/stdc++.h>
using namespace std;
long long xToTen(string s,int jz)
{
    int res =0;
	for(int i=0;i<=s.length()-1;i++)
    {
        if(s[i]!='0')
        {
            char c=s[i]; 
            int temp=0;
			if(s[i]>= '0'&&s[i]<='9') temp = c-'0' ;
            else temp =c-'A'+10;
            res = res + temp*pow(jz,s.length()-1-i);          	
        } 
    }
    return res;
}	
string tenTox(long long res,int jz)
{
    string s;
    int temp=0;
    while(1)
    {
        if(res==0&&temp>0) break;
		int k =res%jz;
		char c;	
		if(k>=0&&k<=9) c=k+'0';
		else c='A'+k-10;
		s=s+c;
		res/=jz;
		temp++;	
    }
    return s;
}
int main()
{
    string s;
	getline(cin,s);
	long long res =xToTen(s,16);
	s.clear();
	s=tenTox(res,2);
    for(int i=s.length()-1;i>=0;i--) cout<<s[i];
    return 0;
}

想破200粉,必回

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值