作者Reddick5566 (红狄克)
看板TransCSI
标题Re: [问题] 数字系统
时间Sun Jan 31 22:45:52 2010
※ 引述《veck (DreamMe)》之铭言:
: The following binary have a sign in the leftmost bit and negative, are in 2's
: complement form. Which one in the following computation has overflow occured?
: (A) 100111+111001
: (B) 001011+100110
: (C) 110001-010010
: (D) 101110+001011
: 我算的答案是A会产生溢位
: 但是答案是(C)
: 我看了一下(C)的解是这样的:
: 110001+101110 = [1]011111 →做舍弃→做2的补数→十进位转换 = -33
: (-15) (-18)
: 我是买坊间的书
: 不知道有没有错
: 还是我自己搞错?
2's complement 的加法
1.直接相加 (包含sign bit)
2.sige bit的进位直接删掉
A.
100111
+ 111001
--------
1100000
↑sign bit的进位 删掉
所以变成100000 (-32)
B.
001011 (11)
+100110 (-26)
---------
110001 (-15)
C.
2's complement 的减法
1.先取减数的2's complement
2.再和被减数相加
110001-010010 = =110001+101110
110001 (-15)
+ 101110 (-18)
-------------
1011111
↑
sign bit要去掉
所以变成011111 (变成正的!! 所以有溢位)
D.
101110 (-18)
+001011 ( 11)
-------
111001 ( 7)
p.s 其实我觉得换成10进位 再去判断有没有溢位比较快....
2's complement 能表示的数 -(2^(n-1))~(2^n -1)
--
∩____
∩ 原作GothicMetal 修图joan091355
|ˊ _ _ˋ| 狛村,原来你这麽丑阿? ∮◣▁▂▃▂▁◢∮ 东
◢ =''= ◣ ▼
\ | /▼ 仙
< ≡(_●_)≡ > 狛村:东仙… 爪
▲ ◣\|/◢ ▲ 虚
__◥
︿ ◤__
你确定我比较丑? ◥▇▼/ \▼▇◤ 化
▼
︶ ▼ 我看隔壁棚的Decade都比你帅
▇▆◣︼◢▆▇ 爪
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.170.250.186
1F:推 veck:喔喔~了解了感谢大大如此用心 01/31 23:41