大數運算之大數除法

2021-03-05 機電大貓

大數即不能用常規方法在計算機裡面表示的數,比長整型更長,例如256位,2048位的巨大數字。

大數計算包括大數的加減乘除、指數、開方、平方、求模等等。其中的加減法相對比較簡單,只要將大數從低到高逐字帶進位相加或者相減即可實現。大數乘法和除法則可以由加法和減法通過一定的邏輯得到,這裡使用除法作為例子進行講解。

方法:移位減法。

輸入:

被除數a,最高位255位為1;

除數b,最高位200位為1;

輸出:

商q = a / b;

餘數r = a % b;

計算:

1,令q = 0,r = a;

2,令n = MSBa - MSBb = 55;

3,B = b左移55位;

4,i自0至n-1執行:

(1)q = q << 1;

(2)若a >= b,a = a - B, q = q + 1;

(3)B = B >> 1;

(4)i = i + 1;

5, 輸出q和r。

原理:

實際上這是一種權計算方法,b左移n位跟a最高位對齊之後,如果a大於b,那麼從a減去b,同時,商的第n位置1,表示此時a中包含2^n個原始的b,以此類推,便可以得到最終的結果,最後當b回到原始值的時候,a-b剩餘的值就是餘數(模)。

按照同樣的方法,可以用移位加的方式實現大數的乘法。再類推一下,使用移位乘的方式可以實現大數的指數運算。

時間複雜度:

加減法的時間複雜度跟位數是線性關係;

乘除法的時間複雜度跟位數的平方是線性關係;

指數運算的時間複雜度跟位數的三次方是線性關係;

類似移位減這種除法的電路:

有一種高速流水線模數轉換電路,每個時鐘只轉換相應權位的一個位。例如要進行一個16位的A/D轉換,輸入模擬量x,輸出d[15:0]

第一級流水線:若x >= Vref/2^1,d[15] = 1, x = x - Vref/2(模擬減法器),否則D[15] = 0, x = x;

第一級流水線:若x >= Vref/2^2,d[14] = 1, x = x - Vref/4,否則D[14] = 0,x = x;

……

輸出幾位的結果就有幾級流水線,按照上述方法,可以實現極高速度的模數轉換。

每天都有新的收穫

相關焦點

  • 小學數學,分數和除法是兩回事,分數是數,除法是一種運算
    那麼是不是分數就是除法呢?這倒不是,分數表示的是一個數,而除法是一種運算。整數,有限小數,純循環小數等絕大部分的數都可以用分數來表示。但有一種情況例外:那就是圓周率的π,無法用分數來表示。由於分數的值相當於除法中的商,所以根據商不變的性質。
  • 數學運算(三)——無符號數除法器
    數學運算(一)—— 無符號數加法器數學運算(二)——無符號數乘法器結構數學運算(三)——無符號數除法器
  • 數的運算之算式
    一.概念描述現代數學:算式簡稱式,是算術的基本概念之一,指把數或表示數的字母用運算符號或關係符號連結起來的式子。算式分橫式與豎式。小學數學:小學數學教材中沒有明確的算式定義,但是學生在學習加法、減法、乘法、除法時都要學習算式的寫法、讀法及算式的意義。
  • 初一數學,有理數除法法則,加減乘除混合運算不跳步,按步拿分
    ————小學知識回顧————1.除法運算(1)已知兩個因數的積與其中的一個因數,求另一個因數的運算叫除法。(3)除數是小數的除法運算法則:除數是小數的除法,先移動除數小數點,使它變成整數;除數的小數點向右移幾位,被除數小數點也向右移幾位(位數不夠在被除數末尾用0補足)然後按照除數是整數的小數除法進行計算。(4)分數的除法則:除以一個數等於乘以這個數的倒數。
  • 2018蘇州小學數學複習資料:數和數的運算-整數四則運算
    2018蘇州小學數學複習資料:數和數的運算-整數四則運算   四、運算的意義   (一)整數四則運算   1整數加法:   把兩個數合併成一個數的運算叫做加法。   在加法裡,相加的數叫做加數,加得的數叫做和。加數是部分數,和是總數。
  • 小升初寒假專題一:數的運算
    加油哦~考點梳理1、【整數、小數、分數加法的意義】把兩個數合成一個數的運算;2、【整數、小數、分數減法的意義】已知兩個數的和與其中的一個加數,求另一個加數的運算;3、【整數乘法的意義】求幾個相同加數的和的簡便運算;4、【小數乘法的意義】小數乘整數與整數乘法的意義相同;一個數乘小數,就是求這個數的十分之幾、百分之幾……是多少;5、【整數乘分數的意義】一個數乘分數,就是求這個數的幾分之幾是多少;6、
  • 小學數的運算學習方法
    一、加法把兩個數合成一個數的運算叫做加法。加法豎式計算方法:相同數位上下要對齊,從個位加起,個位上的數相加滿十就向十位進一,十位上的數相加滿十就向百位進一。個位上9+5滿十向十位進一二、減法已知兩個加數的和與其中的一個加數,求另一個加數的運算,叫做減法。減法的豎式計算方法:把被減數和減數相同數位上下對齊,先從個位開始減,被減數不夠減時就從前一位退一當十,再加上本位上的數再減。
  • 二進位數的運算規則
    二進位數之間可以執行算術運算和邏輯運算,其規則簡單,容易實現。                1 1 1 0 1 0 1  (4) 除法運算規則  二進位數除法的計算方法,與十進位數除法類似,也由減法、上商等操作分步完成
  • 初中知識點有理數四則運算
    上期答案:有理數四則運算有多重要①有理數運算技能是學習代數的基礎( 對整式、方程、分式的學習有很大影響)>②影響初中數學的整體成績有理數的加法運算1)先定符號;2)同號絕對值做加法;異號做減法(大—小)示例:-1+(-1)=-|1+1|=-2 、 1.1+1.1=2.2有理數的減法運算
  • 回顧除數是兩位數除法知識點,反思除法活動引發智力衝擊
    回顧除數是兩位數除法知識點,反思除法活動引發智力衝擊溧之道數學益智四上(019)有一個少年,他錯過了課堂學習時間,11周歲那年,他幸運地上了初中,但幾乎沒學過數學的他,聽老師講數學就像聽天書。2.除數是整十數的筆算方法。3.除數是整十數的有餘數的除法筆算方法。4.筆算除法驗算的方法。5.低級單位的名數改寫成高級單位名數的方法。6.被除數不變的除法性質。7.乘除法之間的關係。8.含有除法計算的混合運算順序。9.商不變的性質。10.長方形面積不變,長、寬和周長之間的關係。11.除數不變的除法性質。12.除數是非整十數的兩位數除法方法。13.連除應用題的分析方法。
  • 小學四則運算不過關,七年級有理數四則運算咋辦?暑假練起來吧
    近期一些小升初家長反應,孩子在預習七上數學有理數四則運算時,錯誤率很高。針對這個情況,老師幫同學們梳理一下小學四則運算內容,有理數的運算是在小學四則運算基礎上,新加入了負數、乘方和絕對值的運算,其方法有很多類似之處。四則運算的概念和運算順序1.加法、減法、乘法和除法統稱四則運算。
  • 小學六年級數學數的運算_奧數天天練_寧波奧數網
    一、整數、小數、分數四則運算的意義   乘法的意義:一個數乘整數是求幾個相同加數和的簡便運算;一個數與小數相乘可以看成是求這個數的十分之幾、百分之幾……是多少;一個數與分數相乘可以看成是求這個數的幾分之幾是多少
  • 人教版七上數學——有理數的除法
    一、有理數除法的計算法則  有理數除法同小學時學過的分數除法一樣,主要是轉化成乘法來計算。  計算法則1:除以一個數等於乘上這個數的倒數。  計算法則2:兩數相除,同號得正,異號得負,並把絕對值相除。  一般對於涉及分數的除法,用法則1;對於一些能直接看出結果的,主要是兩整數相除的,可以直接用法則2。學習時可以類比小學分數除法。
  • 有理數的運算知識點歸納總結
    (a, b, c表示任意三個有理數)3、重點知識運用有理數加法法則進行有理數運算時,第一步是先確定和的符號;第二步是確定(求) 和的絕對值。在進行多個有理數相加運算時,適當運用加法運算律,可使運算簡便。
  • 《有理數的混合運算》知識點精講
    ; 3、 如有括號,先做括號內的運算,按小括號、中括號、大括號的順序依次進行. 【方法總結】 根據有理數的混合運算順序和運算法則計算即可.本題主要考查有理數的混合運算,熟練掌握有理數的混合運算的順序和法則是解題的關鍵. 注意:絕對值符號有括號的作用.
  • 【六年級數學整理與複習】數與代數:數的運算(1)
    1、加法:把兩個(或幾個)數合併成一個數的運算,  叫做加法。減法:已知兩個加數的和與其中的一個加數,求另一個加數的運算,叫做減法。乘法:求幾個相同加數的和的簡便運算。(整數末尾有0的乘法:可以先把0前面的數相乘,然後看各因數的末尾一共有幾個0,就在乘得的數的末尾添寫幾個0。) 4、整數除法的計算法則: 從被除數的最高位商起,除的時候,除數有幾位,就先看被除數的前幾位,如果前幾位不夠除,再多看一位。除到被除數的哪一位,就在哪一位上面寫上商;每次除得的餘數必須比除數小。
  • 初一數學《有理數的除法》知識點精講
    0除以任何一個不等於0的數,都得0。知識點2:有理數的乘除混合運算除轉乘,確定符號。知識點3:有理數的四則混合運算先乘除,後加減,如果有括號,就先算括號裡面的。同級運算中,要按照從左到右的順序。有理數的除法(答案及解析)1.4.2有理數的除法答案-50,-1/24,-24,-0.099,-7解析考點:有理數除法法則1、有理數除法法則2、有理數的加減乘除混合運算說明:兩數相除,同號得正,異號得負,並把絕對值相除。
  • 2021年中考數學知識點:有理數運算法則
    中考網整理了關於2021年中考數學知識點:有理數運算法則,希望對同學們有所幫助,僅供參考。   數學有理數減法法則   減去一個數,等於加上這個數的相反數.   運用此法則時注意「兩變」:一是減法變為加法;二是減數變為其相反數   總結   ①.有理數的加減法可統一成加法.
  • 有理數的組成和運算
    (5)有理數大小比較:數軸上點代表的數大於位於它負方向上的點代表的數。一般的:, 1 正數大於0,0大於負數,正數大於負數; 2 兩個負數,絕對值大的反而小。要點:【1】先定符號再算絕對值;【2】交換律a+b=b+a;【3】結合律(a+b)+c=a+(b+c);【4】有理數減法,減去一個數等於加上這個數的相反數,a-b=a+(-b)。【5】加減混合運算可以轉換為加法運算。
  • 基於ARM的除法運算優化策略
    本文將闡述如何用乘法運算代替除法運算,以及如何使除法的次數最少化。 1 避免除法運算 在非嵌入式領域,因為CPU運算速度快、存儲器容量大但在嵌入式領域,首先需要考慮的是這些除法操作是否是必須的。以對環形緩衝區操作為例,經常要用到除法,其實完全可以避免這些除法運算。