進(jìn)制轉(zhuǎn)換
開(kāi)發(fā)中常用的進(jìn)制有二進(jìn)制抄肖、十進(jìn)制久信、十六進(jìn)制,此文章旨在說(shuō)明進(jìn)制轉(zhuǎn)換的規(guī)則漓摩、流程裙士;最后用OC寫(xiě)了進(jìn)制轉(zhuǎn)換的方法,自測(cè)是ok的管毙;
生活中最常用的是十進(jìn)制腿椎,所以進(jìn)制轉(zhuǎn)換總的可以分為兩大類:
第一類:其他進(jìn)制(如二進(jìn)制、十六進(jìn)制)轉(zhuǎn)十進(jìn)制夭咬;
第二類:十進(jìn)制轉(zhuǎn)其他進(jìn)制(如二進(jìn)制啃炸、十六進(jìn)制);
第一類:其他進(jìn)制轉(zhuǎn)十進(jìn)制
1皱埠、拋開(kāi)進(jìn)制的觀念肮帐,數(shù)值都可以寫(xiě)成這種形式:xxxx.xxxx
咖驮,因?yàn)檫M(jìn)制的不同边器,導(dǎo)致每一位代表的數(shù)值不同,也就是“進(jìn)制”和“位置”組成了不同的數(shù)值;
2托修、這里先明白一個(gè)概念忘巧,就是“基數(shù)”,多少進(jìn)制的基數(shù)就是多少睦刃,如二進(jìn)制的基數(shù)為2砚嘴,十進(jìn)制的基數(shù)為10,十六進(jìn)制的基數(shù)為16涩拙;
3际长、以小數(shù)點(diǎn)為分界線,整數(shù)部分從低位到高位順序依次為0兴泥,1工育,2...,小數(shù)部分從高位到低位順序依次為-1搓彻,-2如绸,-3....
比如對(duì)于十進(jìn)制數(shù)值 101.01嘱朽,位置順序?yàn)?/p>
十進(jìn)制數(shù)值 | 1 | 0 | 1 | . | 0 | 1 |
---|---|---|---|---|---|---|
位置順序 | 2 | 1 | 0 | -1 | -2 | |
代表數(shù)值 | 1x10^2 | 0x10^1 | 1x10^0 | 0x10^-1 | 1x10^-2 |
把代表的數(shù)值相加起來(lái)就得到了十進(jìn)制數(shù)值101.01,同理怔接,對(duì)于其他進(jìn)制也是相同的原理搪泳,通用公式就是
m x radix^p
p表示位置;radix表示進(jìn)制基數(shù)扼脐;m表示位置p對(duì)應(yīng)的數(shù)字岸军;
總結(jié):其他進(jìn)制轉(zhuǎn)為十進(jìn)制就是把每一位表示的數(shù)值相加起來(lái)即可;
第二類:十進(jìn)制轉(zhuǎn)其他進(jìn)制
十進(jìn)制轉(zhuǎn)其他進(jìn)制可以分為兩部分:整數(shù)部分和小數(shù)部分瓦侮;
整數(shù)部分規(guī)則:除基數(shù)反向取余
小數(shù)部分規(guī)則:乘基數(shù)正向取整
1凛膏、整數(shù)部分:
對(duì)于整數(shù)部分,用被除數(shù)反復(fù)除以基數(shù)脏榆,除第一次外猖毫,把得到的商作為下一次除法運(yùn)算的被除數(shù),每一次得到的余數(shù)就是該進(jìn)制數(shù)值的數(shù)值须喂,注意位置是反向的吁断。當(dāng)商為0的時(shí)候就表示運(yùn)算結(jié)束了。
2坞生、小數(shù)部分:
對(duì)應(yīng)小數(shù)部分仔役,乘以基數(shù)得到一個(gè)新的數(shù)值,把這個(gè)新的數(shù)值的整數(shù)部分作為該進(jìn)制的數(shù)值是己,小數(shù)部分作為下一次乘法運(yùn)算的乘數(shù)又兵,注意位置是正向的。當(dāng)小數(shù)部分為0或者達(dá)到所需要的小數(shù)位數(shù)之后就表示運(yùn)算結(jié)束了卒废。
最后沛厨,oc的進(jìn)制轉(zhuǎn)換代碼地址為:oc語(yǔ)言的進(jìn)制轉(zhuǎn)換