通過乙個位運算演算法,感覺該複習基礎知識了

2021-05-25 22:20:20 字數 517 閱讀 3815

題目:乙個整型數n,要把它的二進位制形式的第i位與j位調換?(要求:用位運算)

剛拿到手感覺,應該不會太難,但做到把這兩個位提取後,再想交換時,思路卡著了!最後看看論壇上別人的答案(不止乙個,但這個我比較滿意,下面這個演算法是csdn中使用者名為:zecard_fu提供的),感覺眼前豁然一亮:

code:

int im = 1if ((n&im)==0 ^ (n&jm)==0)      

//也可換成:((n&im)==im^(n&jm)==jm)   

這個演算法不算難,有一點c基礎的都能看懂!

事後我沒再驚奇此演算法的簡練,而是自責自己為什麼沒有想到,想想自己自從半年前知道二級c過了之後,就再也沒認真地看過關於c方面的書籍.看看自己都在幹些什麼:追求各種證書,為了應試而程式設計而學習,學過的東西不願意去回顧,這是自己最大的失誤,殊不知:溫故而知新,然而自己卻沒做到.現在發現複習也是一種新的學習!長期不回顧書本也是一種落後!

自己以後要做適當調整,古人云:術業有專攻!

自己該專攻,而不是全攻!

通過乙個位運算演算法,感覺該複習基礎知識了

題目 乙個整型數n,要把它的二進位制形式的第i位與j位調換?要求 用位運算 剛拿到手感覺,應該不會太難,但做到把這兩個位提取後,再想交換時,思路卡著了 最後看看論壇上別人的答案 不止乙個,但這個我比較滿意,下面這個演算法是csdn中使用者名為 zecard fu提供的 感覺眼前豁然一亮 code i...

乙個位域問題

位域的形式 型別說明符 位網域名稱 位域長度 簡單說明下位域的規則 1.乙個位域必須儲存在同乙個位元組中,不能跨兩個位元組。未考證 2.位域長度不超過1個位元組 3.位域可以無位網域名稱,這時它只用來作填充或調整位置。無名的位域是不能使用的。現有一段 求輸出 typedef struct bs bs...

乙個位壓縮技巧

判斷乙個字元c是否在乙個字串str中,你會怎麼處理?1.for或者while迴圈判斷 可以,但是效率夠嗆 2.建立size為256的靜態對映表char tb 256 將字串str中的所有數值對映到tb中,判斷tb c 1就可以知道字元是否存在str中。可以,還是可以優化的 3.用位壓縮技術對tb進行...