C語(yǔ)言新教材PPT課堂課件-進(jìn)制轉(zhuǎn)化及高精度加法_第1頁(yè)
C語(yǔ)言新教材PPT課堂課件-進(jìn)制轉(zhuǎn)化及高精度加法_第2頁(yè)
C語(yǔ)言新教材PPT課堂課件-進(jìn)制轉(zhuǎn)化及高精度加法_第3頁(yè)
C語(yǔ)言新教材PPT課堂課件-進(jìn)制轉(zhuǎn)化及高精度加法_第4頁(yè)
C語(yǔ)言新教材PPT課堂課件-進(jìn)制轉(zhuǎn)化及高精度加法_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C語(yǔ)言實(shí)訓(xùn)進(jìn)制轉(zhuǎn)化及高精度加法數(shù)制概念 數(shù)制,是使用一組數(shù)字符號(hào)來(lái)表示數(shù)的體系。一個(gè)理想的記數(shù)系統(tǒng)能夠:有效地描述一組數(shù)(例如,整數(shù)、實(shí)數(shù));所有的數(shù)對(duì)應(yīng)唯一的表示(至少有一個(gè)標(biāo)準(zhǔn)表示法)。 記數(shù)系統(tǒng)可以按照進(jìn)位制,可分為十進(jìn)制、二進(jìn)制、八進(jìn)制等問(wèn)題一輸入一個(gè)不大于231-1的10進(jìn)制非負(fù)整數(shù),將其轉(zhuǎn)化為2進(jìn)制。演示(將十進(jìn)制250轉(zhuǎn)化為2進(jìn)制)250 / 2 = 125 0 = 11111010125 / 2 = 62 1 62 / 2 = 31 0 31 / 2 = 15 1 15 / 2 = 7 1 7 / 2 = 3 1 3 / 2 = 1 1 1 / 2 = 0 1 int a,b,

2、i,j;char s35,*p;scanf(%d,&a); p=s;while(a0)b=a%2;*p=0+b;a=a/2;p+;if (p=s) *p+=0;*p=0;for(j=strlen(s)-1;j=0;j-)printf(%c,sj);printf(n);舉一反三輸入兩個(gè)非負(fù)整數(shù)n,m,其中2=m0)b=a%16; if (b9) *p=b+A-10; else *p=b+0; a=a/16; p+;if (p=s) *p+=0;*p=0;for(j=strlen(s)-1;j=0;j-)printf(%c,sj);printf(n);問(wèn)題三輸入一個(gè)長(zhǎng)度不大于31位的二進(jìn)制非負(fù)整數(shù)

3、,將其轉(zhuǎn)化為十進(jìn)制。(轉(zhuǎn)化后的十進(jìn)制數(shù)范圍不會(huì)超過(guò)long型)問(wèn)題分析二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)二進(jìn)制數(shù)第0位的權(quán)值是2的0次方,第1位的權(quán)值是2的1次方,第2位的權(quán)值是2的2次方演示(將二進(jìn)制數(shù):0110 0100,轉(zhuǎn)換為10進(jìn)制)第0位 0 * 20 = 0第1位 0 * 21 = 0第2位 1 * 22 = 4第3位 0 * 23 = 0第4位 0 * 24 = 0第5位 1 * 25 = 32第6位 1 * 26 = 64第7位 0 * 27 = 0 對(duì)等式右邊求和得:0110 0100(2)=100(10) char s33; int i,ans,t; scanf(%s,s); ans=

4、0; t=1; for(i=strlen(s)-1;i=0;i-) ans+=t*(si-0); t*=2; printf(%dn,ans);思考:如果寫成for(i=0;i=strlen(s)-1;i+)循環(huán)體該怎么寫?for(i=0;i=strlen(s)-1;i+) ans=ans*2+si-0高精度概念在某些計(jì)算中,參與運(yùn)算的數(shù)的范圍大大超出了標(biāo)準(zhǔn)數(shù)據(jù)類型(int, _int64)能表示的范圍的運(yùn)算,例如求兩個(gè)長(zhǎng)度1000位的整數(shù)的和。這個(gè)時(shí)候要怎么辦?于是,我們想到了辦法,將這個(gè)數(shù)字拆開(kāi),拆成一位一位的存儲(chǔ)到一個(gè)數(shù)組中,用一個(gè)數(shù)組去表示一個(gè)數(shù)字,這樣表示的數(shù)字就被稱為高精度數(shù)。例如將

5、123456789012(逆序存)存入int 型數(shù)組a中為例題Input輸入兩個(gè)大整數(shù)a和b,每個(gè)整數(shù)的長(zhǎng)度將不會(huì)超過(guò)1000.Output對(duì)于每個(gè)測(cè)試案例,你要輸出a+b。每組一行Sample Input1 2112233445566778899 998877665544332211Sample Output31111111111111111110解題思路:最基礎(chǔ)的高精度題。解題過(guò)程分為以下幾步:1.定義相關(guān)變量及用字符串?dāng)?shù)組讀入高精度數(shù)2.將字符串?dāng)?shù)組轉(zhuǎn)化為int數(shù)組3.做加法及處理進(jìn)位4.輸出char Sa1005,Sb1005;int Ia1005,Ib1005,i,j,k,len1,len2;1.用字符串?dāng)?shù)組讀入高精度數(shù)Sa和Sb用于讀入大數(shù)a和大數(shù)bIa和Ib用于存儲(chǔ)轉(zhuǎn)化后的大數(shù)的每一位for(i=0;i=0;i-)Iaj+=Sai-0; len2=strlen(Sb); for(i=len2-1,j=0;i=0;i-)Ibj+=Sbi-0;/注意,這里將字符型的每一位存入int數(shù)組時(shí),/采取倒序存儲(chǔ),即Ia0存儲(chǔ)大數(shù)的各位,/Ia1存儲(chǔ)十位.便于做加法是各數(shù)位的對(duì)齊3.做加法及進(jìn)位 k=len1len2?len1:len2;/k為兩個(gè)串中的較長(zhǎng)的一個(gè) for(i=

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論