大整數運算

2021-09-10 12:26:19 字數 922 閱讀 8156

大整數儲存

由於大整數超過int範圍,因此需要運用陣列進行儲存。但是在進行大整數儲存過程中為了方便獲取大整數長度,我們還會定義乙個int型變數len來記錄陣列長度,由此可得結構體型別如下:

struct bign

};

進行輸入時是先用字串讀入,然後再把字串另存為bign結構體。由於讀入順序與整數在陣列中的高低位相反,需要進行逆置。

bign change(char str)

return a;

}

大整數比較大小:

int compare(bign a,bign b)

return 0;

}}

大整數四則運算

1,高精度加法

bign add(bign a,bign b)

if(carry != 0) c.d[c.len++] = carry;//如果最後進製不為0,直接賦給結果的最高位

return c;

}

2,高精度減法

bign sub(bign a,bign b)

return c;

}

3,高精度與低精度的乘法

bign multi(bign a,int b)

while(carry!=0)

return c;

}

4,高精度與低精度的除法

bign divide(bign a,int b,int & r)

} while(c.len - 1 >= 1&&c.d[c.len - 1] == 0)

return c;

}

超長整數運算(大整數運算)

問題描述 將形如1234567890123456789不能儲存在long變數中的數稱為超長整數或大整數。現討論大整數的加減乘除運算。思想方法 用陣列儲存超長整數,且為處理的簡單起見約定每個元素存放相同位的數字。如 每個元素存放4位。1 加法運算 void add int a,int b,int c ...

大整數運算

包括大整數的四則運算,一般都是用陣列來模擬大整數的,如果是每一位陣列只存一位數的話,空間浪費比較嚴重,所以這裡每一位陣列儲存4位數,所以是10000進製。加法 輸入 不超過兩百位的非負整數,可能有多餘的前導零。輸出 相加後的結果,不能有多餘的前導零 首先是一些基本的常量定義 define bir 1...

大整數運算

大整數加法 實現 include include intmain c lenc x while c lenc 0 lenc 1 lenc for int i lenc i 1 i printf d c i return0 大整數減法 實現 include include intmain b 205 ...