作者LPH66 (-858993460)
看板Programming
标题Re: 请问一个位元运算问题
时间Fri Dec 3 06:27:50 2010
※ 引述《[email protected] (兄弟般的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