關於補碼的一點計算總結

2021-09-13 18:19:57 字數 595 閱讀 8223

方法:將x補碼各位(符號位也算)全部取反再加1

例子:+6:補碼00000110

-6的補碼: 先取反:11111001,再加1,等於11111010

-6導+6略

+0.75:補碼0.11

-0.75:1.01

上述過程是可逆的,正負互轉都可以

首先考慮原碼的時候

假設x=10011001,那麼x/2就是將除了符號位的所有位右移1位,右側移出的位去掉,左側多出來的位補0,就得到10001100(最右面的1移出去了),x/4,x/8等只是移動位數的區別。

再考慮補碼:

正數的話,補碼等於原碼,沒啥說的。

負數的話:

-32:原碼10100000 補碼11100000

-16:原碼10010000 補碼11110000

-8: 原碼10001000 補碼11111000

-4: 原碼10000100 補碼11111100

那麼可以得出規律:負數右移一位:其補碼符號位不變,其餘位依次右移一位,多出的位補1,

這也很好理解,因為原碼移位時多出來的位補0了,那補碼不是除符號位取反了麼,補的0就變1了

關於MongoDB的一點總結

今天推送引擎註冊在dubbo上的服務總是自動會關閉掉,查了一下發現是system.in.read 的原因,導致自動關閉。但是還是不太明白,別人執行spring的時候,只要啟動以後就不會自動關閉,而我的spring剛啟動就關閉了,找了半天都沒有解決,沒辦法,只好用了最笨的方法 while true 而...

關於演算法的一點總結

分解問題的角度 fix 某一維度,嘗試另一維度上的所有可能 a.可能是array的 i,j pointers,b.可能是矩形的長與寬,c.可能是tree的每乙個subtree,d.可能是情景題的每一對pair 求所有解的,暴力上backtracking吧 如果問最短 最少的,先想bfs dp這對好 ...

關於多執行緒的一點總結

昨天又在toplanguage上看到一些關於輕量級執行緒的討論,於是對其中很有用的一段話轉過來 記錄下來以供自己日後慢慢研究。下面是由red.gmail.com發表在toplanguage上的 1.process per connection thread per connection 這在連線數不...