[課業] 補數,程式設計的參數"~"

看板Examination作者 (菜鳥帽客)時間12年前 (2013/06/10 16:24), 編輯推噓6(603)
留言9則, 4人參與, 最新討論串1/1
版大抱歉,這個單純是個程式的疑問,但不知道該歸類到哪個標題... ----------------------------------------- 程式設計有個參數是"~", 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

06/10 16:38, , 1F
~ 是bit change,5 = (0101),~5 = (1010) = -6(2的補數)
06/10 16:38, 1F

06/10 16:47, , 2F
第一碼是正負號
06/10 16:47, 2F

06/10 17:14, , 3F
回一樓:~不是轉成1的補數嗎??
06/10 17:14, 3F

06/10 17:15, , 4F
回二樓:去掉第一碼,剩下的值似乎也不是6說,是怎麼算
06/10 17:15, 4F

06/10 17:24, , 5F
1000是8同時是-8 然後 1001=-8+1 以此類推
06/10 17:24, 5F

06/10 17:26, , 6F
~ 是轉成1's complement但是程式運算是使用2's
06/10 17:26, 6F

06/10 17:47, , 7F
哦喔,所以~5的1的補數是1001,也就是-8+1=-7 對嗎?
06/10 17:47, 7F

06/10 17:53, , 8F
5=0101,1's 1010, 運算以2's表示 1010 = -6
06/10 17:53, 8F

06/10 18:11, , 9F
可以用[課業]標題分類 置底文有修改標題教學 感謝
06/10 18:11, 9F
文章代碼(AID): #1HjOqxCl (Examination)