Re: 請問一個位元運算問題
※ 引述《modester@kkcity.com.tw (兄弟般的bf)》之銘言:
: 可以再請問一下嗎?
: ALU在將兩個二進制8位元數10010110和00101101相加時
: 運算過程會將下列那個狀態旗標設定為1?
: A.滿溢 B.負值 C.進位 D.零值
: 我的答案是C,但正確答案是B
: 難道其中之一是負值嗎?
是的
10010110
+ 00101101
----------
11000011
最高位沒有進位出去 所以 carry flag 為 0
最高位沒有發生 0+0 => 1 或 1+1 => 0 所以 overflow flag 也為 0
結果的最高位是 1 所以 negative flag 為 1
其實 carry 和 overflow 兩個 flag 直接以這個方式來判斷即可
如果以正負數來判斷有時會搞混
因為 carry flag 對應無號數的計算結果
而 overflow flag 則是對應有號數的計算結果...
--
1989/02/22 優希堂悟 1990/02/22 冬川こころ 1993/07/05 小町つぐみ 1994/05/21 高江
ミュウ 1995/04 歡迎來到 星野遊々 1997/03/24 守野いづみ 1997/03/24 伊野瀬チサト
1998/06/18 守野くるみ 1999/10/19 打越鋼太郎的 楠田ゆに 2000/02/15 樋口遙 2002/
12/17 八神ココ 2011/01/11 HAL18於朱倉岳墜機 2011/04/02 ∞與∫的世界 茜崎空啟動
2012/05/21 第貮日蝕計畫預定 2017/05/01~07 LeMU崩壞事故 2019/04/01~07 某大學合宿
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.230.62
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 6 之 13 篇):