打卡(8)關於位運算

2021-10-20 20:29:02 字數 559 閱讀 8166

將最後乙個1設定為0:

證明他還是很簡單的,假設一串資料為:

x=……1……,

1的前面不知道,1的後面都是0,x-1的結果是:

x-1=……0……,

0的位置與上述1的位置相同,0的前面與上述相同,0的後面都是1,那麼進行位運算的時候,你顯然可以發現,最終的結果就是x中1前面的數字都不變化,1後面的數字都會變成0(包括1。

以及,位運算的時候,下面這一點:

i&(i-1)==0實際上是先算了(i-1)==0,還是需要注意的。

這個題目還是很有意思:

其實這樣看,數字的順序不過是人為排列的,當我們要計算其中數字的個數什麼的時候,完全就可以不關注順序了。

就像這一道題,最巧妙的動態規劃的方法,是將二進位制的首位作為一種擴充的。

class

solution

ans[i]

=ans[i-highbit]+1

;}return ans;}}

;

這算是小細節,以及今天知道了knuth的厲害之處,想買一本程式設計的藝術供奉在床頭嘍。

關於位運算

今天看k神的一篇題解,看到一些關於位運算的技巧。又想起以前學長川哥給的一篇位運算對集合處理的技巧的pdf。所以就一起整理一下。各種位運算子的功能就不累述了。集合的位運算表示 來自川哥給的pdf 基本表示 1.空集 0 2.全集 1 3.只含有第 i 個元素的集合1 集合間的操作 1.s 與 t 的並...

關於位運算

9月21日,對本文從格式到部分內容上都進行了修改 今天看了一位師兄去年的筆經總結,其中有一題是 不許用 和 來實現求任意數除以3的餘數 我想考官的目的應該是想考察學生對位運算的熟悉程度吧,於是我把題目擴充套件成 只能用 和位運算實現正整數除法 和取模 注意 這裡不能使用其它的庫例程來輔助計算,如lo...

關於 位運算

位運算 位運算是把數字用二進位制表示之後,對每一位上0或者1的運算。理解位運算的第一步是理解二進位制。二進位制是指數字的每一位都是0或者1.比如十進位制的2轉化為二進位制之後就是10。在程式設計師的圈子裡有乙個流傳了很久的笑話,說世界上有10種人,一種人知道二進位制,而另一種人不知道二進位制。其實二...