




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、大整大整數(shù)的加把兩個大整數(shù)(都是正整數(shù))相加,把結(jié)果存到一個新大整大整數(shù)的加把兩個大整數(shù)(都是正整數(shù))相加,把結(jié)果存到一個新的大整數(shù)中代#include #define MAXLEN typedef struct void fHp(const HP voidPlus(constHPa,constHPb,HPHPa.data1 = a.data2 = a.len=b.data1 = b.data2 = b.len=return void fHp(const HP for(i=1;i=/ 大整數(shù)的加voidfor(i=1;i=/ 大整數(shù)的加voidPlus(constHPa,constHPb,HP
2、(*c).data1 = /初始值必須/ 大整數(shù)a,b的加法操作和結(jié)果c的進位操for (i=1; i=a.len | i=b.len | (*c).datai; if(i=a.len)(*c).datai+=if(ib for (i=1,j=0; i=a.len; / j 表示是否要進行(*c).datai = a.datai - if(i=b.len)(*c).datai-=/這里可以知道結(jié)構(gòu)體HP data if (*c).datai 1&!(*c).data(*c).len)(*c).len-首位為 0 的情況。使用1 是因為當全部為 0 的時候,len=1帶符號的大整數(shù)的加減使用ty
3、pedef struct data0作為符號標志位,為1表示為負,為0表示為正。要這樣代#include #define MAXLEN typedef struct void fHp(const HP void Subtract(const HP x, const HP y, HP voidPlus(constHPx,constHPy,HPHP/這里就是消/測試腳手/等位數(shù)的情況下的|a| f(ab 等位數(shù)且|a| /a=/測試腳手/等位數(shù)的情況下的|a| f(ab 等位數(shù)且|a| /a=22,b=-21,a+b=1,a-b=a.data2=2; a.data1=2; a.data0=b.da
4、ta2=2; b.data1=1; b.data0=c.data0 = a.len=b.len=f(%d+(%d) = ,22,-/必須要重新c.data0 = f(%d-(%d) = ,22,-21); /a=22,b=21,a+b=43,a-b=a.data2=2; a.data1=2; a.data0=b.data2=2; b.data1=1; b.data0=c.data0 = a.len=b.len=f(%d+%d = c.data0=f(%d-%d = /a=-22,b=21,a+b=-1,a-b=-a.data2=2; a.data1=2; a.data0=b.data2=2;
5、b.data1=1; b.data0=c.data0 = a.len=b.len=f(%d)+%d = ,-c.data0=f(%d)-%d = ,-/a=-22,b=-21,a+b=-43,a-b=-a.data2=2; a.data1=2; a.data0=b.data2=2; b.data1=1; b.data0=a.data2=2; a.data1=2; a.data0=b.data2=2; b.data1=1; b.data0=c.data0 = a.len=b.len=c.data0 = f(%d)-(%d) = ,-22,-/等位數(shù)的情況下的|a| /a=20,b=-21,a+b
6、=-1,a-b=a.data2=2; a.data1=0; a.data0=b.data2=2; b.data1=1; b.data0=c.data0 = a.len=b.len=f(%d+(%d) = ,20,-c.data0=f(%d-(%d) = ,20,-/a=20,b=21,a+b=41,a-b=-a.data2=2; a.data1=0; a.data0=b.data2=2; b.data1=1; b.data0=c.data0 = a.len=b.len=f(%d+%d = c.data0=f(%d-%d = /a=-20,b=21,a+b=1,a-b=-a.data2=2; a
7、.data1=0; a.data0=b.data2=2; b.data1=1; b.data0=a.len=b.len=c.data0 = f(%d)+%d = ,-c.data0=f(%d)-%d = ,-/ac.data0 = f(%d)+%d = ,-c.data0=f(%d)-%d = ,-/a=-20,b=-21,a+b=-41,a-b=a.data2=2; a.data1=0; a.data0=b.data2=2; b.data1=1; b.data0=c.data0 = a.len=b.len=c.data0 = f(%d)-(%d) = ,-20,-/a 的位數(shù)比b 的位數(shù)/a
8、=-120,b=-21,a+b=-141,a-b=-a.data3=1; a.data2=2; a.data1=b.data2=2; b.data1=c.data0 = a.data0 = b.data0 = a.len=b.len=c.data0 = f(%d)-(%d) = ,-120,-/a=120,b=21,a+b=141,a-b=a.data3=1; a.data2=2; a.data1=b.data2=2; b.data1=c.data0 = a.data0 = b.data0 = a.len=b.len=f(%d+%d = c.data0 = f(%d-%d = /a=-120,
9、b=21,a+b=-99,a-bf(%d+%d = c.data0 = f(%d-%d = /a=-120,b=21,a+b=-99,a-b=-a.data3 = a.data2=2;a.data1=b.data2=2; b.data1=c.data0 = a.data0 = b.data0 = a.len=b.len=f(%d)+%d = ,-c.data0 = f(%d)-%d = ,-/a=-120,b=-21,a+b=-141,a-b=-a.data3=1; a.data2=2; a.data1=b.data2=2; b.data1=c.data0 = a.data0 = b.data
10、0 = a.len=b.len=c.data0 = f(%d)-(%d) = ,-120,-/b 的位數(shù)比a 的位數(shù)/a=-20,b=-121,a+b=-141,a-b=a.data2=2; a.data1=b.data3=1; b.data2=2; b.data1=c.data0 = a.data0 = b.data0 = a.len=b.len=c.data0 = f(%d)-(%d) = ,-20,-/a=20,b=121,a+b=141,a-b=-a.data2=c.data0 = f(%d)-(%d) = ,-20,-/a=20,b=121,a+b=141,a-b=-a.data2=
11、2; a.data1=b.data3=1; b.data2=2; b.data1=c.data0 = a.data0 = b.data0 = a.len=b.len=f(%d+%d = c.data0=f(%d-%d = /a=-20,b=121,a+b=101,a-b=-a.data2=2; a.data1=b.data3=1; b.data2=2; b.data1=c.data0 = a.data0 = b.data0 = a.len=b.len=f(%d)+%d = ,-c.data0 = f(%d)-%d = ,-/a=-20,b=-121,a+b=-141,a-b=a.data2=2
12、; a.data1=b.data3=1; b.data2=2; b.data1=c.data0 = a.data0 = b.data0 = a.len=b.len=c.data0 = f(%d)-(%d) = ,-20,-return void fHp(const HP if(x.data0 = f(-return void fHp(const HP if(x.data0 = f(-/ 大整數(shù)的減void Subtract(const HP x, const HP y, HP i, j; HPa=x; HPb=/符號修減負改為加b.data0 = return ;elseifa.data01&
13、b.data00a負b正,則改為負的a.data0 = b.data0 = (*c).data0 = a.data0 = b.data0 = /else a 和b 都是正,則直接往下運行即可,不/大小/else a 和b 都是正,則直接往下運行即可,不/大小判/位數(shù)不if(b.len(*c).data0 = return ;elseif(a.len=i = a.len; while(i=1)/位數(shù)相if(a.datai (*c).data0 = for (i=1,j=0; i=a.len; / j 表示是否要進行(*c).datai = a.datai - if(i=b.len)(*c).da
14、tai-=if (*c).datai 1 &while (*c).len 1 & !(*c).data(*c).len) (*c).len-/ 大整數(shù)的加HPa=x; HPb=/符號判if(a.data0=1)&(b.data0=1) (*c).data0 = 1;else if(a.data0 = a.data0 = else if(b.data0 = b.data0 = (*c).data1 = /初始值必須/ 大整數(shù)a,b的加法操作和結(jié)果c的進位操for (i=1; i=a.len | i=b.len | (*c).datai; if(i=a.len)(*c).datai+=if(i=b
15、.len)(*c).datai+=(*c).datai+1 = (*c).datai/10;/這句話把i+1的值置0或者把(*c).datai %= 退出循環(huán)到原因是c.si=0,所以取前一位 (*c).len = i-1;if*c).len0(*c).len1;/對于ab0時,則c應該輸0帶符號的大整數(shù)的十進制左右代#include #define MAXLEN typedef struct void fHp(const HP void RightShift(HP voidLeftShift(HP帶符號的大整數(shù)的十進制左右代#include #define MAXLEN typedef st
16、ruct void fHp(const HP void RightShift(HP voidLeftShift(HPHPa.s3=6; a.s2=2; a.s1=a.s0=a.len=return void fHp(const HP if(x.s0=f(-/ 十進位右void RightShift(HP for (i=1; i=(*x).len-k; void RightShift(HP for (i=1; i=(*x).len-k; (*x).len -= k;if(*x).len =1; i-for (i=k; i=1; i-)(*x).len += k;不帶符號的大整數(shù)乘代#includ
17、e #define MAXLEN typedef struct void fHp(const HP voidMulti(constHPa,constHPb,HP#define MAXLEN typedef struct void fHp(const HP voidMulti(constHPa,constHPb,HPHPa.s3=9; a.s2=9; a.s1=b.s3=9; b.s2=9; b.s1=a.s0=b.s0=a.len=b.len=return void fHp(const HP f(-/ 大整數(shù)的乘voidMulti(constHPa,constHPb,HPi,對乘法結(jié)果賦初值,
18、以方便之后的+=運(*c).len=a.len+for(i=1;i=(*c).len;i+)(*c).si=0; for (i=1; i=a.len; i+)for (j=1; j=b.len; j+) / 運算結(jié)果進for (i=1; i(*c).len; i+) (*c).si+1 += (*c).si/10; (*c).si %= / 確保不for (i=1; i1 & !(*c).si) i-(*c).len=不帶符號的大整數(shù)除用減法和除法之間的轉(zhuǎn)換關(guān)系代#include #define MAXLEN typedef struct void fHp(const HP pare(const HP x, const HP voidDivide(constHPa,constHPb,HP*c,HPHPa.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024人工智能安全標準與風險評估預警
- 儲能電站系統(tǒng)基礎(chǔ)培訓
- 林下經(jīng)濟施工方案
- 合同范本補償合同
- 吃奶魚合伙合同范例
- 行業(yè)主管工作總結(jié)的實施進度計劃
- 品牌內(nèi)容營銷的成功實踐計劃
- 發(fā)展幼兒自信心的教育活動計劃
- 人事部內(nèi)部流程再造計劃
- 企業(yè)文化建設(shè)的實施計劃
- 狐貍的養(yǎng)殖技術(shù)
- GB/T 3280-2015不銹鋼冷軋鋼板和鋼帶
- GB/T 2851.5-1990沖?;瑒訉蚰<苤虚g導柱模架
- GB/T 28267.4-2015鋼絲繩芯輸送帶第4部分:帶的硫化接頭
- GB/T 20833.4-2021旋轉(zhuǎn)電機繞組絕緣第4部分:絕緣電阻和極化指數(shù)測量
- GB/T 17187-2009農(nóng)業(yè)灌溉設(shè)備滴頭和滴灌管技術(shù)規(guī)范和試驗方法
- GB/T 12459-1990鋼制對焊無縫管件
- 公司參觀登記表
- GB 20517-2006獨立式感煙火災探測報警器
- 診所備案信息表2022
- 儀器校正培訓教材課件
評論
0/150
提交評論