基於位運算的字元大小寫轉換

2022-01-20 12:11:17 字數 474 閱讀 3695

我們知道,在ascii中:

a-z對應65-90

a-z對應97-122

大小寫轉換可以通過+-32進行

有一種更好的方法:基於位運算的轉換

統一轉成大寫:ch & 0b11011111 簡寫:ch & 0xdf

統一轉成小寫:ch | 0b00100000 簡寫:ch | 0x20

分析一下原理:

對於與 0b11011111 轉大寫

乙個字元與上0b11011111的本質是:

與 0b00100000 轉小寫也是一樣的。

原數二進位制第6位是0:+32,是1:不變

65~90變為97-122,97-122不變

巧用位運算實現大小寫轉換

今天看王爽老師的 組合語言 時,很有收穫,不論是技術還是思考方式。任務是將字串進行大小寫轉換,但是還暫時不會用分支判斷語句 而且這樣的效率也不是最高的,有點類似於高階語言了 如果乙個問題的解決方法,使我們陷入一種矛盾之中。那麼,很可能是我們考慮問題的出發點有了問題,或是說,我們起初運用的規律並不適合...

字元大小寫轉換

題目1 寫乙個程式,要求功能 求出用1,2,5這三個數不同個數組合的和為100的組合個數。如 100個1是乙個組合,5個1加19個5是乙個組合 include using namespace std int func int num node string n,string i,char s,int...

字元大小寫的轉換

在python中有下面一堆內建函式,用來實現各種型別的大小寫轉化 看例子 a qiwsir,python a.upper 將小寫字母完全變成大寫字母 qiwsir,python a 原資料物件並沒有改變 qiwsir,python b a.upper b qiwsir,python c b.lowe...