iOS進(jìn)制之間轉(zhuǎn)換

1 進(jìn)制的轉(zhuǎn)換(一)

1.1 問題

完成以下數(shù)字的進(jìn)制轉(zhuǎn)換:

35轉(zhuǎn)換成二進(jìn)制;

101101 轉(zhuǎn)換成十進(jìn)制;

1.2 方案

進(jìn)制就是一種計(jì)數(shù)的方式,數(shù)值的表示形式。在編程中,同一個(gè)整數(shù)至少有4種表示方式:十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制。

十進(jìn)制:逢十進(jìn)一,默認(rèn)情況下數(shù)值都是十進(jìn)制;

二進(jìn)制:逢二進(jìn)一,數(shù)值以0b開頭;

八進(jìn)制:逢八進(jìn)一,數(shù)值以0開頭;

十六進(jìn)制:逢十六進(jìn)一,數(shù)值以0x開頭;

在程序中的數(shù)據(jù)的四種表現(xiàn)形式如圖-1所示:

image

圖-1

1.3 步驟

實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。

步驟一:將35轉(zhuǎn)換成二進(jìn)制

用35除以2取余,直到商小于2以后,從商逆序向上組合所有的余數(shù),因此得到35的二進(jìn)制形式100011,如圖-2所示:

image

圖-2

可以在代碼中驗(yàn)證此結(jié)果,如圖-3、圖-4所示:

image

圖-3

image

圖-4

步驟二:將101101轉(zhuǎn)換成十進(jìn)制

用101101每個(gè)位置上的數(shù)乘以2的當(dāng)前位次冪,然后所有結(jié)果相加的和就是該數(shù)的十進(jìn)制表現(xiàn)形式,因此得到101101的十進(jìn)制是77,如圖-5所示:

image

圖-5

可以在代碼中驗(yàn)證此結(jié)果,如圖-6、圖-7所示:

image

圖-6

image

圖-7

2 進(jìn)制的轉(zhuǎn)換(二)

2.1 問題

完成以下數(shù)字的進(jìn)制轉(zhuǎn)換:

35轉(zhuǎn)換成八進(jìn)制;

0217轉(zhuǎn)換成十進(jìn)制;

2.2 步驟

實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。

步驟一:將35轉(zhuǎn)換成八進(jìn)制

35除以8取余,直到商小于8以后,從商逆序向上組合所有余數(shù),因此得到35的八進(jìn)制形式是43,如圖-8所示:

image

圖-8

可以在代碼中驗(yàn)證此結(jié)果,如圖-9、圖-10所示:

image

圖-9

image

圖-10

步驟二:將0217轉(zhuǎn)換成十進(jìn)制

0217每個(gè)位置上的數(shù)乘以8的當(dāng)前位次冪,然后所有結(jié)果相加的和,因此得到0217的十進(jìn)制形式是143,如圖-11所示:

image

圖-11

可以在代碼中驗(yàn)證此結(jié)果,如圖-12、圖-13所示:

image

圖-12

image

圖-13

3 進(jìn)制的轉(zhuǎn)換(三)

3.1 問題

完成以下數(shù)字的進(jìn)制轉(zhuǎn)換:

0x3125AF轉(zhuǎn)換成二進(jìn)制;

0b110111100110轉(zhuǎn)換成十六進(jìn)制;

3.2 方案

因?yàn)樗奈欢M(jìn)制能夠表達(dá)的最大數(shù)是15即F。所以十六進(jìn)制轉(zhuǎn)二進(jìn)制,只要把每個(gè)位用四位二進(jìn)制表示后,再進(jìn)行組合即可。

二進(jìn)制轉(zhuǎn)十六進(jìn)制,則需要從右側(cè)開始,每四位一劃分,四位用一個(gè)十六進(jìn)制的符號(hào)表示后,再組合即可。

3.3 步驟

實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。

步驟一:將0x3125AF轉(zhuǎn)換成二進(jìn)制

將0x3125AF的每一位用四位二進(jìn)制數(shù)表示,再組合在一起即可,得到二進(jìn)制形式001100010010010110101111,高位的零可以省略不寫,即1100010010010110101111,如圖-14所示:

image

圖-14

可以在代碼中驗(yàn)證此結(jié)果,如圖-15、圖-16所示:

image

圖-15

image

圖-16

步驟二:將0b110111100110轉(zhuǎn)換成十六進(jìn)制

將0b110111100110二進(jìn)制轉(zhuǎn)十六進(jìn)制,則需要從右側(cè)開始,每四位一劃分,用一個(gè)十六進(jìn)制的符號(hào)表示再組合,即DE6,如圖-17所示:

image

圖-17

可以在代碼中驗(yàn)證此結(jié)果,如圖-18、圖-19所示:

image

圖-18

image

圖-19

4 使用不同進(jìn)制顯示數(shù)據(jù)

4.1 問題

按如下要求完成練習(xí):

聲明一個(gè)整型變量,初始化時(shí)使用十進(jìn)制數(shù)據(jù),賦值為10,使用八進(jìn)制和十六進(jìn)制輸出初始化后的數(shù)據(jù);

為該變量賦值010,使用十進(jìn)制和十六進(jìn)制輸出改變后的數(shù)據(jù);

為該變量賦值0x10,使用十進(jìn)制輸出改變后的數(shù)據(jù)。

4.2 方案

以八進(jìn)制的形式給某個(gè)變量進(jìn)行賦值,賦值時(shí)數(shù)據(jù)以0開頭。

NSLog格式符%o,控制臺(tái)顯示的八進(jìn)制不帶前導(dǎo)0。NSLog格式符%#o,控制臺(tái)顯示的八進(jìn)制帶前導(dǎo)0。

以十六進(jìn)制的形式給某個(gè)變量進(jìn)行賦值,賦值時(shí)數(shù)據(jù)以0x開頭。

NSLog格式符%x,控制臺(tái)顯示的十六進(jìn)制不帶前導(dǎo)0x。NSLog格式符%#x,顯示的十六進(jìn)制帶前導(dǎo)0x。

4.3 步驟

實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。

步驟一:使用八進(jìn)制和十六進(jìn)制輸出數(shù)據(jù)

在viewDidLoad方法中定義int類型的變量i,以十進(jìn)制的形式賦值為10,使用%o、%#o和%x、%#x分別以八進(jìn)制和十六進(jìn)制的形式輸出該變量,如圖-20所示:

image

圖-20

以八進(jìn)制和十六進(jìn)制的形式輸出結(jié)果分別為12和a,如圖-21所示:

image

圖-21

步驟二:使用十進(jìn)制和十六進(jìn)制輸出改變后的數(shù)據(jù)

將變量i賦值為010,使用十進(jìn)制和十六進(jìn)制輸出改變后的數(shù)據(jù),如圖-22所示:

image

圖-22

以十進(jìn)制和十六進(jìn)制的形式輸出結(jié)果都是8,如圖-23所示:

image

圖-23

步驟三:使用十進(jìn)制輸出改變后的數(shù)據(jù)

將變量i賦值為0x10,使用十進(jìn)制輸出改變后的數(shù)據(jù),如圖-24所示:

image

圖-24

以十進(jìn)制的形式輸出結(jié)果是16,如圖-25所示:

image

圖-25
5 判斷如下關(guān)系表達(dá)式的結(jié)果
5.1 問題

判斷以下關(guān)系表達(dá)式的運(yùn)算結(jié)果:
1) 7 > 5
2) 2 > 2
3) 15 > 7 + 2
4) 1 == 2
5) 3 != 2
5.2 方案

關(guān)系運(yùn)算也可以叫做比較運(yùn)算,用于確定條件是否成立,得出一個(gè)是或者否的結(jié)論,所以關(guān)系運(yùn)算符的運(yùn)算結(jié)果只有兩種,成立則代表真,不成立則代表假。
關(guān)系運(yùn)算經(jīng)常與條件語句結(jié)合使用,關(guān)系語句包括以下幾種:
“>”大于;
“<”小于;
“==”等于;
“!=”不等于;
“>=”大于等于;
“<=”小于等于;
5.3 步驟

實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。
步驟一:依次計(jì)算每條語句的運(yùn)算結(jié)果

7 > 5;
7比5大,因此7>5運(yùn)算結(jié)果成立,其計(jì)算結(jié)果為真,也就是1。
2 > 2;
2和2相等,因此2>2的運(yùn)算結(jié)果不成立,其計(jì)算結(jié)果為假,也就是0。
15 > 7 + 2;
關(guān)系運(yùn)算的優(yōu)先級(jí)比算術(shù)運(yùn)算低,因此先計(jì)算7+2,再計(jì)算15>9,其計(jì)算結(jié)果為真。
1 == 2;
1和2不相等,因此1==2的運(yùn)算結(jié)果不成立,其計(jì)算結(jié)果為假,也就是0。
3 != 2;
3和2不相等,因此3!=2的運(yùn)算結(jié)果成立,其計(jì)算結(jié)果為真。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容