五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

算法筆記(1)——位運算技巧(x & (x?1))

2022-09-04 13:04 作者:Rutubet4994  | 我要投稿

這個技巧出自Brian Kernighan算法,x&(x-1)可以用來把x最低位的1變成0,由此可以用來循環(huán)調(diào)用計算x這個數(shù)的二進制位的1的個數(shù),同樣也可以判斷x是否為2的冪。

下面進行粗略的理解這個公式:

先考慮x和(x-1)在二進制上有什么區(qū)別,通過觀察我們?nèi)菀字溃?x-1)只影響從最低位一直到最低位的1的那一位,比如數(shù)0b11100,減去1后變成了0b11011,高位完全不影響,而x&x =x恒成立,所以對于x&(x-1),只需要考慮那些低位就可以。我們看x的低位,就是0b100這種形式,比如0b1,0b10,0b100,0b1000等等,然后毫無疑問減去1的話就得到了諸如:0b0,0b01,0b011,0b0111等等,也就是說剛好是取反了,這時將這兩個數(shù)進行與運算,得到的就是0,所以這樣是把x的最低位的1給抹除了,而不影響高位。

0b11100&(0b11100-1)=0b11000





算法筆記(1)——位運算技巧(x & (x?1))的評論 (共 條)

分享到微博請遵守國家法律
乌海市| 泉州市| 玉林市| 仁寿县| 十堰市| 当涂县| 郁南县| 彭阳县| 西丰县| 通化市| 浮梁县| 南召县| 百色市| 金昌市| 贵港市| 宁波市| 法库县| 阳高县| 宁蒗| 汉阴县| 灵台县| 成都市| 彭水| 海丰县| 垦利县| 涡阳县| 武山县| 西乡县| 泽库县| 罗甸县| 长葛市| 灌云县| 叙永县| 漳平市| 文水县| 普格县| 禹州市| 随州市| 股票| 丹东市| 华坪县|