作者beatfuture (菜鳥帽客)
看板Examination
標題[考題] 補數,程式設計的參數"~"
時間Mon Jun 10 16:24:24 2013
版大抱歉,這個單純是個程式的疑問,但不知道該歸類到哪個標題...
-----------------------------------------
程式設計有個參數是"~", ex. int a=5 ; ~a
查過用意是代表該數的1的補數
但小弟用VC2005去跑,
int a=5 ;
int d=~a ;
d會一直跑出-6 ,
請問這個-6是怎麼算出來的呢?
---------------------------------------
小弟以為....
5的2進位為0101
2's 為 011
1's 為 010
請大大幫忙解惑
感謝~~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 42.66.225.63
1F:推 carterdunk:~ 是bit change,5 = (0101),~5 = (1010) = -6(2的補數) 06/10 16:38
2F:推 ARCHERDEVIL:第一碼是正負號 06/10 16:47
3F:→ beatfuture:回一樓:~不是轉成1的補數嗎?? 06/10 17:14
4F:→ beatfuture:回二樓:去掉第一碼,剩下的值似乎也不是6說,是怎麼算 06/10 17:15
5F:推 ARCHERDEVIL:1000是8同時是-8 然後 1001=-8+1 以此類推 06/10 17:24
6F:推 carterdunk:~ 是轉成1's complement但是程式運算是使用2's 06/10 17:26
7F:→ beatfuture:哦喔,所以~5的1的補數是1001,也就是-8+1=-7 對嗎? 06/10 17:47
8F:推 ARCHERDEVIL:5=0101,1's 1010, 運算以2's表示 1010 = -6 06/10 17:53
9F:推 MJdavid:可以用[課業]標題分類 置底文有修改標題教學 感謝 06/10 18:11