導航:首頁 > 方法技巧 > 判斷溢出的快速方法

判斷溢出的快速方法

發布時間:2023-04-27 10:55:01

1. 針對定點小數加法運算,分析 產生溢出的原因,並給出兩種溢出的方法

(1)產生「溢出」的原因:        
當最高有效數值位的運算進位與符號位的運算進位不一致時,將產生運算「溢出」。 當最高有效位產生進位而符號位無進位時,產生上溢; 當最高有效位無進位而符號位有進位時,產生下溢。 
(2)「溢出」檢測方法: 
為了判斷「溢出」是否發生,可採用兩種檢測的方法。
第一種方法:採用雙符號位法, 稱為「變形補碼」或「模4補碼」,可使模2補碼所能表示的數的范圍擴大一倍
第二種溢出檢測方法:採用「單符號位法」。當最高有效位產生進位而符號位無進位時,產生上溢; 

2. 什麼是補碼加減運算溢出判別溢出有哪幾種方法並我說明工作原理。

通常有三種表述方式(說法):
(1)
兩個符號相同的補碼數相加,如果和的符號與加數的符號相反,或兩個符號相反的補碼數相減,差的符號與減數的符號相同,都屬於運算結果溢出。這種判別方法比較復雜,要區別加還是減兩種不同運算情況,還要檢查結果的符號與其中一個操作數的符號的同異,故很少使用;
(2)
兩個補碼數相加減時,若最高數值位向符號位送的進位值與符號位送向更高位的進位值不相同,也是運算結果溢出。
(3)
在採用雙符號位(如定點小數的模4補碼)運算時,若兩個符號位的得值不同(01或10)則是溢出。01表明兩個正數相加,結果大於機器所能表示的最大正數,稱為"上溢";10表明兩個負數相加,結果小於機器所能表示的最小負數,稱為"下溢";雙符號位的高位符號位,不管結果溢出否,均是運算結果正確的符號位,這個結論在乘法運算過程中是很有實際意義的。請注意,在採用雙符號位的方案中,在寄存器和內存儲器存儲數據時,只需存一位符號,雙符號位僅用在加法器線路部分。
再次強調,這三種不同說法是對同一個事實的略有區別的表述,實現時用到的線路可以有所區別,但問題的實質是完全一樣的。

3. 如何判斷整數數據的溢出

整數溢出,如何判斷整數溢出 收藏
C語言中存在兩類整數算術運算,有符號運算和無符號運算。在無符號運算里,沒有了符號位,所以是沒有溢出的概念的。
所有的無符號運算都是以2的n次方為模。如果算術運算符的一個操作數是有符號書,另一個是無符號數,那麼有符號數
會被轉換為無符號數(表示範圍小的總是被轉換為表示範圍大的),那麼溢出也不會發生。但是,當兩個操作數都是有符號數
時,溢出就有可能發生。而且溢出的結果是未定義的。當一個運算的結果發生溢出時,任何假設都是不安全的。
例如,假定a和b是兩個非負的整型變數(有符號),我們需要檢查a+b是否溢出,一種想當然的方式是:
if (a + b < 0)
溢出;
實際上,在現實世界裡,這並不能正常運行。當a+b確實發生溢出時,所有關於結果如何的假設均不可靠。比如,在某些
機器的cpu,加法運算將設置一個內部寄存器為四種狀態:正,負,零和溢出。在這種機器上,c編譯器完全有理由實現以上
的例子,使得a+b返回的不是負,而是這個內存寄存器的溢出狀態。顯然,if的判斷會失敗。
一種正確的方式是將a和b都強制轉換為無符號整數:
if ( (unsigned)a + (unsigned)b > INT_MAX)
溢出;
這里的int_max值為有符號整型的最大值。在一般的編譯器里是一個預定義的常量。ANSI C在limits里定義了INT_MAX,值為
2的31次方-1.
不需要用到無符號算數運算的另一種可行方法是:
if (a > INT_MAX - b )
溢出;
PS : 有符號數的最高位(31位)為符號位,最高位為0的時候,表示正,為1的時候表示負。運算時,符號位不參加運算,但是如果兩個數相加,30位需要進1時,那麼即表示溢出。

4. 如何判斷運算中的溢出

1、乘法溢出判斷方法:
MUL指令:乘積的高一半為0,則沒有溢出;否則就有溢出;
IMUL指令:乘積的高一半是低一半的符號擴展時,則沒有溢出;否則就有溢出。
2、除法指令對所有條件標志位均無定義。

5. 匯編語言.兩有符號數運算,如何自己判斷是否溢出

計算機中的溢出,是指數據過大,超出了預定的范圍。


八位二進制,可以代表自然數:0~255;


也可以代表整數:-128~+127。


判斷溢出,常用的方法:


1。你用十進制,人工計算。和,在容許范圍之內,就沒有溢出。


這種方法最簡單。而且,對無符號數、帶符號數,都是適用的。


2。你用二進制,人工計算。和的符號,屬於合理,就沒有溢出。


這種方法稍稍麻煩。只能判斷「帶符號數」的溢出。


3。你編個程,讓 CPU 計算。如果 OF = 0,就沒有溢出。


這種方法,難度較大。


4。你把兩個數據,顯示出來,求大家幫你判斷。


在你那邊,網路通了吧。

閱讀全文

與判斷溢出的快速方法相關的資料

熱點內容
排煙風口與短管連接方法 瀏覽:701
姚桐斌研究的方法 瀏覽:737
引伸計安裝方法 瀏覽:618
吉娃娃手機使用方法 瀏覽:847
安卓系統通訊錄設置在哪裡設置方法 瀏覽:815
怎麼備孕最好方法 瀏覽:812
頸椎病治療方法用什麼中葯治 瀏覽:246
水鑽打空調眼兒使用方法視頻 瀏覽:819
口腔頜面腫瘤治療方法 瀏覽:959
沖成人奶粉的正確方法 瀏覽:193
404x125的簡便運算方法 瀏覽:10
水泥多孔磚砌牆方法圖片 瀏覽:705
孢穀草種植方法 瀏覽:283
萵筍青菜種植方法 瀏覽:736
前列腺增生怎麼治療方法 瀏覽:846
12伏蓄電池存電量計算方法 瀏覽:219
沖壓工36技計算方法計算實例 瀏覽:858
骨化三醇免疫治療方法 瀏覽:306
三聯療法如何服用方法 瀏覽:426
93乘43加91的簡便方法 瀏覽:393