进制的转化

目录

二进制转化为十进制

n进制转化为十进制

n(n>10)进转化为十进制

十进制转化为二进制

十进制转化为n进制

十进制转化为n(n>10)进制


二进制转化为十进制

二进制与十进制可以说是最常用的了,其中二进制又涉及位运算,因此尤为重要。

二进制手动转化为10进制在之前位运算中提到过,例如:二进制的10011转化为十进制就是19。即:

sum=1*2^4+0*2^3+0*2^2+1*2^1+1*2^0=19。

由于,int;long long;等等都是定义十进制整数的,因此其余进制均采用字符串的方式储存。

 

n进制转化为十进制

首先,我们得知道什么是进制,2进制就是逢2进一,十进制就是逢10进一,所以n进制就是逢n进一

比如5进制的10402。按照2进制的思路,手动转化为十进制就是

sum=1*5^4+0*5^3+4*5^2+0*5^1+2*5^0=727

因此我们可以发现,n进制与2进制计算方式一模一样

n(n>10)进转化为十进制

由于,n>10,而超过10的数,是用字母表示的,如10就是A,15就是F

所以进制转化大致思路还是这样,只不过呢,考虑字母就行

//将字符串存入数组
	for(ll i=0;i<a.size();i++){
		if(a[i]>'9') b[i]=a[i]-'A'+10;
		else b[i]=a[i]-'0';
	}
当a[i]>9,即为字母了。
别问为啥是-'A'+10(因为是我手动试出来的hh)

十进制转化为二进制

其实十进制转化为二进制,也就是二进制转化为十进制的逆运算而已

十进制转化为n进制

n进制和2进制一样,只是把2改成而已啦

十进制转化为n(n>10)进制

当n>10时候,就涉及字母了。同样,经过层层尝试得出

//c++
while(sum) {
    if(sum%n<10) a+=sum%n+'0';
    else a+=sum%n+'0'+7;
    sum/=n;
}
//c语言
while(sum) {
    if(sum%n<10) a[k++]=sum%n+'0';
    else a[k++]=sum%n+'0'+7;
    sum/=n;
}

 也就这里不同,其余一模一样

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青衿白首志

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值