国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

算法案例學(xué)習(xí)——進(jìn)位制

2013-10-23 01:16陳忠
高中生學(xué)習(xí)·高二版 2013年9期
關(guān)鍵詞:高二基數(shù)二進(jìn)制

陳忠

日常生活中,我們最熟悉、最常用的是十進(jìn)制,據(jù)說這與古人曾以手指計(jì)數(shù)有關(guān),愛好天文學(xué)的古人也曾經(jīng)采用七進(jìn)制、十二進(jìn)制、六十進(jìn)制,至今我們?nèi)匀皇褂靡恢芷咛?、一年十二個月、一小時(shí)六十分的歷法.今天我們來學(xué)習(xí)一下進(jìn)位制.

【探究】

1. 你都了解哪些進(jìn)位制?

2. 舉出常見的進(jìn)位制.

3. 思考非十進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的轉(zhuǎn)化方法.

4. 思考十進(jìn)制數(shù)轉(zhuǎn)換成非十進(jìn)制數(shù)及非十進(jìn)制之間的轉(zhuǎn)換方法.

【結(jié)論】

1. 進(jìn)位制是人們?yōu)榱擞?jì)數(shù)和運(yùn)算方便而約定的計(jì)數(shù)系統(tǒng),約定滿二進(jìn)一,就是二進(jìn)制;滿十進(jìn)一,就是十進(jìn)制;滿十二進(jìn)一,就是十二進(jìn)制;滿六十進(jìn)一,就是六十進(jìn)制等等.也就是說:“滿幾進(jìn)一”就是幾進(jìn)制,幾進(jìn)制的基數(shù)(都是大于1的整數(shù))就是幾.

2. 在日常生活中,我們最熟悉、最常用的是十進(jìn)制,至今我們?nèi)匀皇褂靡恢芷咛臁⒁荒晔€月、一小時(shí)六十分的歷法.

3. 十進(jìn)制使用0~9十個數(shù)字.計(jì)數(shù)時(shí),幾個數(shù)字排成一行,從右起,第一位是個位,個位上的數(shù)字是幾,就表示幾個一;第二位是十位,十位上的數(shù)字是幾,就表示幾個十;接著依次是百位、千位、萬位……

例如:十進(jìn)制數(shù)4528中的4表示4個千,5表示5個百,2表示2個十,8表示8個一. 于是,我們得到下面的式子:[4528=4×103+5×102+2×101+8×100].

與十進(jìn)制類似,其他的進(jìn)位制也可以按照位置原則計(jì)數(shù).由于每一種進(jìn)位制的基數(shù)不同,所用的數(shù)字個數(shù)也不同.如二進(jìn)制用0和1兩個數(shù)字,七進(jìn)制用0~6七個數(shù)字.

一般地,若[k]是一個大于1的整數(shù),那么以[k]為基數(shù)的[k]進(jìn)制數(shù)可以表示為一串?dāng)?shù)字連寫在一起的形式 [anan-1…a1a0(k)]([0

其他進(jìn)位制的數(shù)也可以表示成不同位上數(shù)字與基數(shù)的冪的乘積之和的形式,如:

[110011(2)=1×25+1×24+0×23+0×22+1×21+1×20,]

[7342(8)=7×83+3×82+4×81+2×80],

非十進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)比較簡單,只要計(jì)算下面的式子值即可:

[anan-1…a1a0(k)=an×kn+an-1×kn-1+…+a1×k1+a0×k0.]

第一步:從左到右依次取出[k]進(jìn)制數(shù)[anan-1…a1a0(k)]各位上的數(shù)字,乘以相應(yīng)的[k]的冪,[k]的冪從[n]開始取值,每次遞減1,遞減到0,即[an×kn,an-1×kn-1,…,a1×k1,a0×k0];

第二步:把所得到的乘積加起來,所得的結(jié)果就是相應(yīng)的十進(jìn)制數(shù).

4. 關(guān)于進(jìn)位制的轉(zhuǎn)換,教科書上以十進(jìn)制和二進(jìn)制之間的轉(zhuǎn)換為例講解,并推廣到十進(jìn)制和其他進(jìn)制之間的轉(zhuǎn)換.這樣做的原因是,計(jì)算機(jī)是以二進(jìn)制的形式進(jìn)行存儲和計(jì)算數(shù)據(jù)的,而一般我們傳輸給計(jì)算機(jī)的數(shù)據(jù)是十進(jìn)制數(shù)據(jù),因此計(jì)算機(jī)必須先將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),再處理,顯然運(yùn)算后首次得到的結(jié)果為二進(jìn)制數(shù),同時(shí)計(jì)算機(jī)又把運(yùn)算結(jié)果由二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)輸出.

(1)十進(jìn)制數(shù)轉(zhuǎn)換成非十進(jìn)制數(shù)

把十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),教科書上提供了“除2取余法”,我們可以類比得到十進(jìn)制數(shù)轉(zhuǎn)換成[k]進(jìn)制數(shù)的算法“除[k]取余法”.

(2)非十進(jìn)制之間的轉(zhuǎn)換

一個自然的想法是利用十進(jìn)制作為橋梁. 教科書上提供了一個二進(jìn)制數(shù)據(jù)與16進(jìn)制數(shù)據(jù)之間的互化的方法,也就是先由二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù),再由十進(jìn)制數(shù)轉(zhuǎn)化成為16進(jìn)制數(shù).

【應(yīng)用示例】

例1 將8進(jìn)制數(shù)[314706(8)]化為十進(jìn)制數(shù).

解析 [314706(8)=3×85+1×84+4×83+7×82][+0×81+6×80=104902.]

所以,化為十進(jìn)制數(shù)是[104902].

點(diǎn)撥 利用把[k]進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)的一般方法就可以把8進(jìn)制數(shù)[314706(8)]化為十進(jìn)制數(shù).

變式 設(shè)計(jì)一個算法,把[k]進(jìn)制數(shù)[a](共有[n]位)化為十進(jìn)制數(shù)[b].

分析 從例1的計(jì)算過程可以看出,計(jì)算[k]進(jìn)制數(shù)[a]的右數(shù)第[i]位數(shù)字[ai]與[ki-1]的乘積[ai?ki-1],再將其累加,這是一個重復(fù)操作的步驟.所以,可以用循環(huán)結(jié)構(gòu)來構(gòu)造算法.

算法步驟如下:

第一步,輸入[a],[k]和[n]的值.

第二步,將[b]的值初始化為0,[i]的值初始化為1.

第三步,[b=b+ai?ki-1,i=i+1].

第四步,判斷[i>n]是否成立.若是,則執(zhí)行第五步;否則,返回第三步.

第五步,輸出[b]的值.

解 程序框圖如下圖:

例2 把89化為二進(jìn)制數(shù).

解析 根據(jù)二進(jìn)制數(shù)“滿二進(jìn)一”的原則,可以用2連續(xù)去除89或所得商,然后取余數(shù).具體計(jì)算如下:

因?yàn)?9=2×44+1,

44=2×22+0,

22=2×11+0,

11=2×5+1,

5=2×2+1,

2=2×1+0,

1=2×0+1,

所以89=2×(2×(2×(2×(2×2+1)+1)+0)+0)+1

=2×(2×(2×(2×(22+1)+1)+0)+0)+1

=1×26+0×25+1×24+1×23+0×22+0×21+1×20

=1011001(2).

這種算法叫做除2取余法,還可以用下面的除法算式表示:

將上式中各步所得的余數(shù)從下到上排列,得到89=1011001(2).

上述方法也可以推廣為把十進(jìn)制數(shù)化為[k]進(jìn)制數(shù)的算法,稱為除[k]取余法.

變式 設(shè)計(jì)一個程序,實(shí)現(xiàn)“除[k]取余法”.

分析 從例2的計(jì)算過程可以看出如下的規(guī)律:

若十制數(shù)[a]除以[k]所得商是[q0],余數(shù)是[r0],即[a=k?q0+r0],則[r0]是[a]的[k]進(jìn)制數(shù)的右數(shù)第1位數(shù).

若[q0]除以[k]所得的商是[q1],余數(shù)是[r1],即[q0=k?q1+r1],則[r1]是[a]的[k]進(jìn)制數(shù)的右數(shù)第2位數(shù).

若[qn-1]除以[k]所得的商是0,余數(shù)是[rn],即[qn-1=rn],則[rn]是[a]的[k]進(jìn)制數(shù)的左數(shù)第1位數(shù).

這樣,我們可以得到算法步驟如下:

第一步,給定十進(jìn)制正整數(shù)[a]和轉(zhuǎn)化后的數(shù)的基數(shù)[k].

第二步,求出[a]除以[k]所得的商[q],余數(shù)[r].

第三步,把得到的余數(shù)依次從右到左排列.

第四步,若[q≠0],則[a=q],返回第二步;

否則,輸出全部余數(shù)[r]排列得到的[k]進(jìn)制數(shù).

解 程序框圖如下圖:

程序:

計(jì)算機(jī)是以二進(jìn)制的形式進(jìn)行存儲和計(jì)算數(shù)據(jù)的,而一般我們傳輸給計(jì)算機(jī)的數(shù)據(jù)是十進(jìn)制數(shù)據(jù),因此計(jì)算機(jī)必須先將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),再處理,顯然運(yùn)算后首次得到的結(jié)果為二進(jìn)制數(shù),同時(shí),計(jì)算機(jī)又把運(yùn)算結(jié)果由二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)輸出.因此學(xué)好進(jìn)位制是非常必要的.

猜你喜歡
高二基數(shù)二進(jìn)制
一次性傷殘就業(yè)補(bǔ)助金的工資基數(shù)應(yīng)如何計(jì)算?
用二進(jìn)制解一道高中數(shù)學(xué)聯(lián)賽數(shù)論題
千萬不要亂翻番
有趣的進(jìn)度
二進(jìn)制在競賽題中的應(yīng)用
巧妙推算星期幾
『基數(shù)』和『序數(shù)』
2017.2新高考高二英語配送練習(xí)參考答案
2016.11新高考高二英語配送練習(xí)參考答案
高二第二學(xué)期期末測試題
屏东县| 隆子县| 大石桥市| 衢州市| 讷河市| 泽库县| 田阳县| 澜沧| 嘉荫县| 新田县| 黑龙江省| 安福县| 华蓥市| 比如县| 洪洞县| 娄底市| 邵阳县| 邻水| 许昌县| 简阳市| 泽普县| 中卫市| 八宿县| 山丹县| 西畴县| 泰来县| 万宁市| 桦南县| 高台县| 那坡县| 长治县| 来凤县| 阜城县| 汝南县| 保定市| 隆安县| 葫芦岛市| 新巴尔虎左旗| 扶绥县| 贵港市| 忻城县|