※ 引述《[email protected] (-858993460)》之銘言:
> 如最早的那篇回文 現代電腦一律是 2 補數 所以是 C
恩 這我了解
A B C 選項是我算的 不是題目 ^^
> negative flag 單純就是看結果以有號數解釋時是不是負數而已
> 和 carry/overflow 無關
> 最後兩句話是在說 carry 和 overflow 兩個 flag 的:
> carry flag 是無號數相加溢出時設為 1
> 也就是偵測 180+89=269 >= 256 這種情形
> 10110100 => 180
> + 01011001 => 89
> ----------
> 00001101 => 13
> 這種情形發生時 最高位會進位出去
> 所以 carry flag 就在這時設為 1
> 之所以叫 carry flag 是因為它會用在 multi-word 相加時用來記錄進位
這應該就像我上篇說的
進位到第九位,但只有8 bits,所以是carry
> overflow flag 則是有號數相加溢出時設為 1
> 也就是偵測 80+70=150 >= 128 或 (-80)+(-70)=-150 < -128 這種情形
> 這兩個例子是:
> 01010000 => 80 10110000 => -80
> + 01000110 => 70 + 10111010 => -70
> ---------- ----------
> 10010110 => -106 01101010 => 106
感覺和carry很像,只是差在有無號數 @@
第二個例子看懂(最高位1+1,進到第九位)
第一個例子,用十進位算,確實overflow(>127,2^7-1)
但用二進位算,最高位是0+0,最後是1
沒有進到第九位,這樣也算overflow嗎?
> 由於這種情形發生時 最高位會發生符號改變
還是overflow要看這句話?
最高位改變(以第一個例子看,都是0,變成1;以第二個例子看,都是1,變成0)
> 因此 overflow flag 就會在這個時候設為 1
> 這樣應該有回答到你的問題...
抱歉吼,小弟駑鈍,對資工來說,這應該很簡單...
--
┌─────◆KKCITY◆─────┐ ■ KKBOX 可立刻 聽音樂 ■
│ bbs.kkcity.com.tw │ ■■ 想聽什麼歌 通通不必等 ■■
└──《From:61.231.64.147 》──┘ ■■■ http://www.kkbox.com.tw ■■■
--