為什麼可以用進製判斷溢位

2023-07-19 00:18:40 字數 4820 閱讀 1416

1樓:做而論道

溢位,本來是個通用的詞彙,其含義,不難理解。

到了計算機專業,溢位是指資料過大,超出了編碼所能表示的範圍。

對於八位二進位制【無符號數】,表示範圍是 0~255。

當運算結果,達到 256 以及更大,就溢位了,特徵是「進製為一」。

對於八位二進位制【帶符號數】,表示範圍是 -128~+127。

當運算結果,小於-128 或大於 127,就溢位了,特徵是「符號錯誤」。

按照 intel 所設計 cpu 的特點,進製和溢位,是不同的。

「無符號數」的溢位,則稱為「進製」。

「帶符號數」的溢位,才稱為「溢位」。

那麼,可以用進製判斷溢位嗎?

顯然不是的。

在 intel 公司,它們兩者,根本就沒有關係。

2樓:辜涆桓秀美

進製判斷方法:加減時最高位產生進製或借位,代表結果超出無符號數的範圍,單位元組就是0~255;

溢位判斷方法:加減時最高位和次高位中有且僅有乙個產生進製或借位,代表結果超出有符號數的範圍,單位元組就是-128~127;

「溢位」和「進製」的區別是什麼?

3樓:太平洋電腦網

對於整數來說溢位就是超出型別所能表示的範圍。比如對於無符號整數0 - 1就會溢位。而對於16位帶符號整數-32768 - 1會溢位。

這裡存在乙個問題就是一般cpu不會區分你的運算是否帶符號,因為不管帶不帶符號,運算方法都是一樣的。也就是說兩種溢位都需要考慮,為了區分,無符號整型的溢位就被稱作進製了。

進製判斷方法:加減時最高位產生進製或借位,代表結果超出無符號數的範圍,單位元組就是0~255;

溢位判斷方法:加減時最高位和次高位中有且僅有乙個產生進製或借位,代表結果超出有符號數的範圍,單位元組就是-128~127;

溢位和進製到底有什麼區別啊?比如暫存器全都是8位的。

4樓:做而論道

溢位,是指資料過大,超出了編碼所能表示的範圍。

對於八位二進位制【無符號數】,表示範圍是 0~255。

當運算結果,達到 256 以及更大,就溢位了,特徵是「進製為一」

對於八位二進位制【帶符號數】,表示範圍是 -128~+127。

當運算結果,小於-128 或大於 127,就溢位了,特徵是「符號錯誤

因此,當出現了進製,必然就是「無符號數溢位」了。

現在,很多作者的基本概念都不清,教材中都是亂講。

他們只是把「帶符號數」的溢位,稱為「溢位」。

而錯誤的把「無符號數」的溢位,稱為「進製」。

那麼,有進製,就一定溢位嗎?

顯然不是的,按照「現代說法。,它們兩者,根本就沒有關係。

5樓:萊宸展翰採

a+b0xff0xff

0x1fe,由於c暫存器只有八位,所以其結果為0xfe(也就是無符號數254)。計算過程中發生了溢位的狀態,一般會儲存在類似於程式狀態字這樣的特殊暫存器中,供程式進行後續判斷,或者直接會向系統丟擲異常。

有符號數-127採用補碼表示為0x81,因此e+f0x81

0x810x102,由於g暫存器只有八位,所以其結果為0x02(也就是有符號數+2)。同樣,計算過程中也產生了溢位。

嫌我字數不夠。

溢位和進製的區別

6樓:做而論道

溢位,本是通用的名詞。可以理解為:容器太小。

但是,計算機專業中,超過容器範圍的事情,就分成了「進製」和「溢位」兩種說法。

人類所用的:自然數、整數。

在計算機專業人嘴裡,就改稱為:無符號數、帶符號數。

不論什麼數,在計算機中,都是用「二進位制機器碼」表示和儲存。

8 位的二進位制機器碼,

可代表無符號數的範圍是

可代表帶符號數的範圍是:

當運算結果,超出了上述的範圍,必然就會溢位。

intel 設計 cpu 時,規定了兩個標誌位。

無符號數運算結果超出上下限,將有:cf = 1,這就叫「進製」。

有符號數運算結果超出上下限,將有:of = 1,這才叫做「溢位」。

計算:1111 1110 + 1111 1101 = 進製 1) 1111 1011。

如果這是無符號數,就是:254 + 253 = 256) 251。

結果應該是 507,超出了 255,進製=1。

如果這是帶符號數,就是:(-2) +3) =捨棄進製) (5)。

結果不超範圍,沒有溢位,結果正確。

計算:

如果這是無符號數,就是:126 + 125 = 0) 251。

結果不超出 255,結果正確。進製=0。

如果這是帶符號數,就是:+ 126 + 125 = 捨棄進製) (5)。

結果超範圍,溢位了,結果符號不對,結果錯。

7樓:匿名使用者

進製標誌表示無符號數運算結果是否超出範圍,運算結果仍然正確;溢位標誌表示有符號數運算結果是否超出範圍,運算結果已經不正確。

8樓:手機使用者

溢位是所要儲存的空間無法放置所要存放的資料,而導致正常讀取出錯。 進製。程式裡沒這個詞。數學中有。十進位制滿10進1,八進位制滿8進1.

如何判斷是否溢位?

9樓:斛品韻琴湃

溢位,在用二進位制進行加減計算的時候,要看「最高位的進製」就「次高位的進製」。

這兩個進製,如果相同,則無溢位。

設兩個8位補碼表示的數b7b6b5b4b3b2b1b0和a7a6a5a4a3a2a1a0相加,把b7+

a7的進製稱為c7,把b6

a6的進製稱為c6,那麼,c7、c6,如果不同,就是溢位了。

樓主給出的題目如下,依據這些,是不能判斷溢位的,因為其中並沒有「次高位的進製」。

溢位(b7,a7為符號標記),則___

與a7的邏輯或結果一定是1

與a7的邏輯與結果一定是為0

與a7的邏輯異或結果一定為1

與a7的邏輯異或結果一定0;答案為d,你們看下,

10樓:匿名使用者

1.符號位判定,兩個相同符號的數相加後,結果與兩個加數一致2.最高位的進製判定,兩個正數相加,最高有效位有進製,符號位無進製。

兩個負數相加,最高有效位無進製,而符號位有進製。

3.採用變形補碼法,正數前加0負數前加1,運算後,兩符號不一致,則溢位。

溢位和進製到底有什麼區別啊?比如暫存器全都是8位的。

11樓:做而論道

在小學學過:自然數、整數。

存入計算機後,就改稱為:無符號數、帶符號數。

不論什麼數,在計算機中,都是用「二進位制機器碼」表示和儲存。

8 位的二進位制機器碼,可代表。

無符號數的範圍是

帶符號數的範圍是

當運算結果,超出了上述的範圍,必然就會溢位。

溢位,本應是通用的名詞。

但是,在 intel 設計的 cpu 中,就分成了「進製」和「溢位」兩種說法。

intel 設計 cpu 時,規定了兩個標誌位。

無符號數運算結果超出上下限,將有:cf = 1,這就叫做「進製」。

有符號數運算結果超出上下限,將有:of = 1,這才叫做「溢位」。

示意圖如下:

無論出現 cf=1 或 of=1,都說明,運算結果,已經超出 8 位二進位制的容納範圍。

那麼,僅僅以 8 位二進位制,當做運算結果,肯定是錯誤的。

對於無符號數來說,把 cf=1 算在內,共有 9 位的結果,這就是正確的。

但是,對於帶符號數運算來說,一旦 of=1,就無法得到正確的結果。

12樓:羿利葉向酉

比如8位系統,0-255之間,無符號。

進製和小學數學,1+9=10,進1位是一樣的理解。

溢位,超出取值範圍叫做溢位,本來是0-255,你出來乙個266,這就是溢位,這個數字是無法被訪問的。無符號無溢位是因為1+255=0,2+255=1,迴圈了,而不是繼續加大得到乙個大於255數值。

因此數值永遠在0-255之間,你會超過這個範圍不會溢位。

為什麼可以用二階導數判斷函式極值

這個問題,樓主可以借助於圓來理解。將圓分割成四個相等的部分,也就是在四個象限的四個四分之一的弧長 1 先分析在第2象限的弧 x從左向右移動時,弧上的每一點的切線的斜率是越來越小,從正無窮大變為0 2 再分析在第1象限的弧 x從左向右移動時,弧上的每一點的切線的斜率是越來越小,從0變成負無窮大。所以,...

高等數學向量積為什麼可以用右手定則來判斷指向

因為通常座標系採用的是右手系,向量積的定義是跟著座標系的 請大俠解釋一下向量積右手定則如何用,我實在不懂手要怎麼轉 向量積右手定則使用方法如下 右手除姆指外的四指合併,姆指與其他四指垂直,四指由a向量的方向握向b向量的方向,這時姆指的指向就是a,b向量向量積的方向。就是說,ab向量積的方向垂直於ab...

酒精為什麼可以用來消毒,傷口可以用酒精消毒嗎?

根據酒精相似想融的原理,會把 表面的有機物 也就是那些病菌 吸收咯.大概是這樣的。沒有什麼為什麼,它就是幹這個用的 傷口可以用酒精消毒嗎?95 的酒精為什麼不能用來殺菌 過高濃度的酒精會在細菌表面形成一層保護膜,阻止其進入細菌體內,難以將細菌徹底殺死。日常生活中,常見一些人用醫用酒精來擦洗傷口,以達...