iOS算法教程之分段截取常數(shù)示例
前言
本文主要給大家介紹了關(guān)于iOS算法之分段截取常數(shù)的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí)價值,下面話不多說了,來一起看看詳細(xì)的介紹吧。
一、錯位分段相加,遞歸合并的過程
#include intHamming_weight_3(intn ) { n = (n&0x55555555) + ((n>>1)&0x55555555); n = (n&0x33333333) + ((n>>2)&0x33333333); n = (n&0x0f0f0f0f) + ((n>>4)&0x0f0f0f0f); n = (n&0x00ff00ff) + ((n>>8)&0x00ff00ff); n = (n&0x0000ffff) + ((n>>16)&0x0000ffff); returnn; }
intmain() { intn; while(scanf("%d", &n) !=EOF)//讀入整數(shù)和打印1的個數(shù) { printf("%d \n",Hamming_weight_3( n )); } return0; }
二、細(xì)節(jié)分析:
1.數(shù)字都有什么特點(diǎn):
0x5555……這個換成二進(jìn)制之后就是0101010101010101……
0x3333……這個換成二進(jìn)制之后就是0011001100110011……
0x0f0f……...這個換成二進(jìn)制之后就是0000111100001111……
2.如果把這些二進(jìn)制序列看作一個循環(huán)的周期序列的話,那么第一個序列的周期是2,每個周期是01,第二個序列的周期是4,每個周期是0011,第三個的周期是8,每個是00001111……
3.這些玩意相與之后的結(jié)果:
整個數(shù)按照上述的周期被分成了n段,每段里面的前半截都被清零,后半截保留了數(shù)據(jù)。不同在于這些數(shù)分段的長度是2倍增長的。于是我們可以姑且命名它們?yōu)椤胺侄谓厝〕?shù)”。
謝謝!!!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
ios通過SDWebImage實現(xiàn)圖片加載時的漸變效果
本篇文章主要介紹了ios通過SDWebImage實現(xiàn)圖片加載時的漸變效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04iOS適配iPhone XS、 iPhone XS Max and iPhone XR的方法淺析
這篇文章主要給大家介紹了關(guān)于iOS適配iPhone XS、 iPhone XS Max and iPhone XR的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09詳解 swift3.0 可選綁定共用同一塊內(nèi)存空間的實例
這篇文章主要介紹了詳解 swift3.0 可選綁定共用同一塊內(nèi)存空間的實例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09iOS如何固定UITableView中cell.imageView.image的圖片大小
這篇文章主要給大家介紹了關(guān)于iOS如何固定UITableView中cell.imageView.image圖片大小的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者們的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11關(guān)于iOS 11的一些新特性適配實踐總結(jié)
iOS 11 為整個生態(tài)系統(tǒng)的 UI 元素帶來了一種更加大膽、動態(tài)的新風(fēng)格。下面這篇文章主要給大家總結(jié)介紹了關(guān)于iOS 11的一些新特性適配實踐,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11IOS 基礎(chǔ)之nil,NULL,NSNULL區(qū)別詳解
這篇文章主要介紹了IOS 基礎(chǔ)之nil,NULL,NSNULL區(qū)別詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04