位运算与字母大小写转换
聲明:這些內(nèi)容主要是面向C語言的初學(xué)者,尤其是正在學(xué)習(xí)C語言的學(xué)生。
? ? 在讀王爽老師的《匯編語言》時,看到了用and 和or指令處理字母大小寫轉(zhuǎn)換的例子。and 和or是匯編語言中按位與和按位或操作的指令,對應(yīng)C語言中的&和|操作。本文把這個例子的C語言版在這里重復(fù)一下,以便理解和擴(kuò)充位運(yùn)算的應(yīng)用。
? ? 我們知道大小寫字母的ASCII碼值差32,因此我們通常采用直接加減32的方法來進(jìn)行大小寫字母的轉(zhuǎn)換。如果要用位運(yùn)算來操作,則必須先從大小寫字母的ASCII碼值的二進(jìn)制形式入手。下表列出了部分字母的大小寫的ASCII碼值的二進(jìn)制形式。
?
| 大寫 | 十六進(jìn)制 | 二進(jìn)制 | 小寫 | 十六進(jìn)制 | 二進(jìn)制 |
| A | 41 | 01000001 | a | 61 | 01100001 |
| B | 42 | 01000010 | b | 62 | 01100010 |
| C | 43 | 01000011 | c | 63 | 01100011 |
| D | 44 | 01000100 | d | 64 | 01100100 |
| E | 45 | 01000101 | e | 65 | 01100101 |
| F | 46 | 01000110 | f | 66 | 01100110 |
?
? ? 仔細(xì)觀察上表的兩列二進(jìn)制形式,可以發(fā)現(xiàn)這樣的規(guī)律:除第5位外(位數(shù)從0開始計算),大寫字母和小寫字母的其他各位都一樣,大寫字母的第5位為0,小寫字母的第5位為1。因此,對于一個字母,不管原來是大寫還是小寫,將其第5位置0,它就必將變成大寫字母;將其第5位置1,它就必將變成小寫字母。下面的程序?qū)蓚€大小寫混合的字符串分別轉(zhuǎn)換為大寫和小寫字母串。
總結(jié)
以上是生活随笔為你收集整理的位运算与字母大小写转换的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SEO诊断案例-崔凯博客
- 下一篇: Java学习笔记Day2:流程控制