iOS开发中的进制转换

进制转换

开发中常用的进制有二进制、十进制、十六进制,此文章旨在说明进制转换的规则、流程;最后用OC写了进制转换的方法,自测是ok的;

生活中最常用的是十进制,所以进制转换总的可以分为两大类:
第一类:其他进制(如二进制、十六进制)转十进制;
第二类:十进制转其他进制(如二进制、十六进制);

第一类:其他进制转十进制

1、抛开进制的观念,数值都可以写成这种形式:xxxx.xxxx,因为进制的不同,导致每一位代表的数值不同,也就是“进制”和“位置”组成了不同的数值;
2、这里先明白一个概念,就是“基数”,多少进制的基数就是多少,如二进制的基数为2,十进制的基数为10,十六进制的基数为16;
3、以小数点为分界线,整数部分从低位到高位顺序依次为0,1,2…,小数部分从高位到低位顺序依次为-1,-2,-3….

比如对于十进制数值 101.01,位置顺序为

十进制数值101.01
位置顺序210-1-2
代表数值1x10^20x10^11x10^00x10^-11x10^-2

把代表的数值相加起来就得到了十进制数值101.01,同理,对于其他进制也是相同的原理,通用公式就是

m x radix^p

p表示位置;radix表示进制基数;m表示位置p对应的数字;

总结:其他进制转为十进制就是把每一位表示的数值相加起来即可;

第二类:十进制转其他进制

十进制转其他进制可以分为两部分:整数部分和小数部分;
整数部分规则:除基数反向取余
小数部分规则:乘基数正向取整

1、整数部分:

对于整数部分,用被除数反复除以基数,除第一次外,把得到的商作为下一次除法运算的被除数,每一次得到的余数就是该进制数值的数值,注意位置是反向的。当商为0的时候就表示运算结束了。

2、小数部分:

对应小数部分,乘以基数得到一个新的数值,把这个新的数值的整数部分作为该进制的数值,小数部分作为下一次乘法运算的乘数,注意位置是正向的。当小数部分为0或者达到所需要的小数位数之后就表示运算结束了。

最后,oc的进制转换代码地址为:oc语言的进制转换

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值