ruby中取反的問題

今天朋友說,這python裏,~2 = -3, ~3 = -4, 特別的奇怪。

我試了下,ruby,c語言裏面也同樣是如此。
起先是如此
一般來講  
2  二進制表示就是  00000010 
~2 取反,那就是     11111101
那麼 ~2 應該就是   -125
結果卻是 -3

然後要重新翻一下c語言的書,可悲啊,基礎的東西已經忘成這樣了。。。
c語言裏面的數字運算使用的是補碼,保存的形式也是補碼
正數的補碼和反碼都是一樣的
負數的就不是,所以這裏11111101是補碼,轉成原碼,就是10000011,就是-3


雖然這是小事,卻能告誡我們,這基礎的知識還是要勞固。不然太丟了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章