阿摩線上測驗 登入

申論題資訊

試卷:97年 - 097年身心障礙人員3等資料結構#49398
科目:公職◆資料結構
年份:97年
排序:0

申論題內容

五、在電腦中若要「完全不失真的」儲存「大數整數」該如何儲存?如何作其加、減、乘、 除四則計算?(15 分)

詳解 (共 1 筆)

詳解 提供者:114年高考上榜

在電腦中要「完全不失真的」儲存大數整數,需要使用任意精度算術(Arbitrary-precision arithmetic)的方法。這種方法可以處理任意長度的整數,而不會因為數字太大而失真。

 
在任意精度算術中,大數整數可以使用字串或陣列來儲存。每一位數字都可以儲存在陣列的一個元素中,或是字串的一個字元中。因此,一個很長的整數可以被拆成很多小的數字來儲存。
 
在進行加、減、乘、除四則計算時,可以使用程式來實現。以下是一些常見的方法:
 
加法:從最低位(個位)開始,將兩個數字的對應位數相加,如果有進位就要加到下一位。如果其中一個數字已經加完了,就把另一個數字的剩餘部分直接加到結果中。
減法:和加法類似,從最低位開始,將被減數的對應位數從減數的對應位數中減去,如果有借位就要從下一位借過來。如果被減數已經減完了,就把減數的剩餘部分加上負號,再加到結果中。
乘法:從最低位開始,將被乘數的每一位數字都乘上乘數的每一位數字,然後將結果相加。需要使用多次加法和進位來實現。每一次相加後,要將進位加到下一位的結果中。
除法:可以使用長除法的方法,從最高位開始將被除數進行除法運算,得到商和餘數,然後將餘數帶到下一位繼續除法運算。需要使用多次減法和進位來實現。可以使用二分查找等方法來加快計算速度。
以上是任意精度算術的一些基本方法,實際上在程式實現時需要考慮到多種情況,例如溢位、位數對齊、符號處理等等。