位操作應用程式小到大寫字母
位操作的幾種應用之一是通過選擇掩碼和適當的位操作將字母從小轉換為大寫或反之亦然。例如,一個字母有這個二進位制表示 0
1(1)00001
,而它的首都對應有 0
1(0)00001
。它們的不同之處僅在於括號中的位。在這種情況下,將字母從小字母轉換為大寫字母基本上將括號中的位設定為 1。為此,我們執行以下操作:
/****************************************
convert small letter to captial letter.
========================================
a: 01100001
mask: 11011111 <-- (0xDF) 11(0)11111
:---------
a&mask: 01000001 <-- A letter
*****************************************/
將字母轉換為 A 字母的程式碼是
#include <cstdio>
int main()
{
char op1 = 'a'; // "a" letter (i.e. small case)
int mask = 0xDF; // choosing a proper mask
printf("a (AND) mask = A\n");
printf("%c & 0xDF = %c\n", op1, op1 & mask);
return 0;
}
結果是
$ g++ main.cpp -o test1
$ ./test1
a (AND) mask = A
a & 0xDF = A