資料溢位判斷

2021-09-20 18:45:24 字數 727 閱讀 3902

程式執行過程中,跑的都是資料,因此難免會有資料溢位的現象,那麼,

1)資料溢位什麼樣子呢?

以byte型別為例,1byte有8bit,如果最高位向前有進製,那麼就表示資料溢位。

eg:1000 0000

+1000 0000

——————

10000 0000

我們還知道計算機有個溢位標誌位of,

2)那當資料溢位時,計算機是如何判斷溢位,進而修改of標誌位的?

計算機的計算方法:of=cf與次高位進製的異或值。cf是最高位(符號位)的進製,次高位進製是資料的最高位向符號位的進製。

1、無符號數溢位判斷

其實很簡單,就一句話:

當最高為向更高位有進製(或借位)時產生溢位。

2、有符號數溢位判斷

微機原理中的判斷有符號數溢位規則:最高位進製狀態⊕次高位進製狀態=1,則溢位

"⊕"表示異或:相同為0,相異為1

那麼上述判斷規則翻譯白話後為:最高位和次高位,乙個有進製乙個沒有進製,則他們的狀態異或值是1,則結果就有溢位。

判斷整數溢位

c語言中存在兩類整數算術運算,有符號運算和無符號運算。在無符號運算裡,沒有了符號位,所以是沒有溢位的概念的。所有的無符號運算都是以2的n次方為模。如果算術運算子的乙個運算元是有符號書,另乙個是無符號數,那麼有符號數 會被轉換為無符號數 表示範圍小的總是被轉換為表示範圍大的 那麼溢位也不會發生。但是,...

補碼溢位判斷

補碼可以將減法轉化為加法,但有些電路需要判斷加法是否溢位。判斷加法是否溢位的條件是最高有效位和符號有效位。對於nbit的二進位制數,符號位為最高位,最高有效位為符號位的低1位。加法有四種情況 正 負 負 正 正 正 負 負 其中 負 正 和 正 負 是一定不會溢位的,但是它們的符號位進製和有效位進製...

整數溢位,如何判斷整數溢位

c語言中存在兩類整數算術運算,有符號運算和無符號運算。在無符號運算裡,沒有了符號位,所以是沒有溢位的概念的。所有的無符號運算都是以2的n次方為模。如果算術運算子的乙個運算元是有符號書,另乙個是無符號數,那麼有符號數 會被轉換為無符號數 表示範圍小的總是被轉換為表示範圍大的 那麼溢位也不會發生。但是,...