在該書第97頁講了一種令人費解說明耐亏,或者說我暫時無法理解它的講解转晰,所以我打算在此好好理解說明一下給自己看龟糕。
我感覺它說反了桐磁,那么我來重新說一下吧。一個非0數(shù)的二進制位表示中肯定至少有一個1讲岁,假設(shè)這個1是從左到右第m位我擂,那么這個數(shù)減1的話,那么它第m位從1變成0缓艳,其他位不變校摩。如果第m為是0的話,經(jīng)過減1運算之后郎任,那么它前面的0都會變成1秧耗,而遇到的第1個1會變成0,比如二進制數(shù)11000舶治,最后一位減1得到10111分井。然后將10111與11000做與運算得到10000。如果第m為1霉猛,比如說是11001尺锚,減1后變成11000,然后將11000與11001做與運算得到11000惜浅。
從上面兩個實例可以看出瘫辩,一個數(shù)將1以后再與原數(shù)做與運算最后得到的數(shù)的最有一個1將會變成0。這是個有趣的現(xiàn)象坛悉。
基于這個思想伐厌,那就是說一個數(shù)有多少個1就可以進行多少個這樣的運算直到整個數(shù)變成0。
那么就可以使用這個性質(zhì)來計算1的個數(shù)裸影。