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 的酒精為什麼不能用來殺菌 過高濃度的酒精會在細菌表面形成一層保護膜,阻止其進入細菌體內,難以將細菌徹底殺死。日常生活中,常見一些人用醫用酒精來擦洗傷口,以達...