日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

位运算与字母大小写转换

發布時間:2023/12/16 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 位运算与字母大小写转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聲明:這些內容主要是面向C語言的初學者,尤其是正在學習C語言的學生。

? ? 在讀王爽老師的《匯編語言》時,看到了用and 和or指令處理字母大小寫轉換的例子。and 和or是匯編語言中按位與和按位或操作的指令,對應C語言中的&和|操作。本文把這個例子的C語言版在這里重復一下,以便理解和擴充位運算的應用。

? ? 我們知道大小寫字母的ASCII碼值差32,因此我們通常采用直接加減32的方法來進行大小寫字母的轉換。如果要用位運算來操作,則必須先從大小寫字母的ASCII碼值的二進制形式入手。下表列出了部分字母的大小寫的ASCII碼值的二進制形式。

?

大寫

十六進制

二進制

小寫

十六進制

二進制

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

?

? ? 仔細觀察上表的兩列二進制形式,可以發現這樣的規律:除第5位外(位數從0開始計算),大寫字母和小寫字母的其他各位都一樣,大寫字母的第5位為0,小寫字母的第5位為1。因此,對于一個字母,不管原來是大寫還是小寫,將其第5位置0,它就必將變成大寫字母;將其第5位置1,它就必將變成小寫字母。下面的程序將兩個大小寫混合的字符串分別轉換為大寫和小寫字母串。


//用位運算實現大小寫字母轉換 #include "stdio.h" int main() {int i=0;char a[6]="BaSiC";char b[6]="MinIX";do {a[i] = a[i] & 0xDF; //將第5位置0 b[i] = b[i] | 0x20; //將第5位置1i++;}while(i<5);printf("a = %s\nb = %s\n",a,b); }

總結

以上是生活随笔為你收集整理的位运算与字母大小写转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。