如何判斷整數是否溢位,怎麼判斷int型別溢位 java

2022-01-15 13:05:57 字數 1990 閱讀 4479

1樓:茆詩蘭光冰

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時,那麼即表示溢位。

輸入一個整數,如何判斷輸入是否溢位了

2樓:聽不清啊

#include

#include

int main()

if(strlen(p)>>0)

printf("輸入溢位\n");

else

return 0;}

怎麼判斷int型別溢位 j**a

3樓:逆心小土豆

(1)無符號整數相加,如果結果小於其中任何一個,則溢位;

bool isoverflow(unsigned x, unsigned y)

(2) 有符號整數相加,比無符號的相對複雜一點兒:

如果兩個整數相加<0,或者兩個負數相加》0,(負數在計算機中用補碼錶示)則溢位。

bool isoverflow(int x, int y)(3)如何判斷一個輸入或者轉化轉化的單個數字是否溢位;if( num>0x7fffffff || num<(signed int)0x80000000)

int型別的最大正數:0x7fffffff;

int型別的最小負數:0x80000000;

matlab中怎麼判斷一個整數有沒有溢位(雙精度結構下)

4樓:濯楚雲

很簡單啊,加一個data type conversion,把它的輸出型別設定為double就行了。

雖然晚了三年才看到,但是希望能幫到後來人。

如何檢測c/c++中的整數溢位

5樓:喰種

今天做到一個演算法題,結果沒有搜到解決方案。方法可能比較繁瑣,不知道對不對,如果不對,請點右下角的反對,並且歡迎補充

對於a,b的算數運算檢測溢位

加法:如果a,b同正或同負,if(abs(a)+abs(b)

減法參考加法的比較,只是換個符號

乘法:if(a*b/b!=a) a*b溢位

c語言中如何判斷整數是否為平方數

若n n n,n,n均為正整數,則n為完全平方數c語言中,include 直接對n開平方,如果有 sqrt n int sqrt n 則n為完全平方數 sqrt 函式是math庫中的開平方函式,如果開方結果與取整結果一樣,則符合要求.1 擷取字串 擷取字串可以說是字串處理功能中最常用的一個子功能了,...

如何判斷老婆是否出軌,怎麼判斷老婆是否出軌?

女人出軌表現之三 粥 沒資訊 男人細心點可以發現,女人跟曖昧異回性談話的時候,語調會低一答 些,聲音也會更加甜美,而妻子頻繁低聲細語地煲 粥則也是女人出軌的徵兆之一。不過聰明的女人在出軌後並不會那麼容易洩露蛛絲馬跡,而會把所有跟私隱相關的聊天資訊都刪除掉。這個還真bai讓人頭痛。1.找個du私家偵探...

怎麼判斷自己心理是否健康,如何判斷自己是否心理健康呢

如何判斷心理是否健康 一個人的健康不僅僅是身體的健康就是可以的,還要的就是心理健康,那您是否知道心理健康標準是什麼呢?您知道如何保持心理健呢?心理健康標準 健康特徵一 暗示 好的,我們的心理,多是受周圍的環境影響而影響的。所以,一個人的心理是不是健康的,就要看他受自身周圍的環境暗示影響大不大。所謂波...