字母大小寫轉換

早上看到一個有趣的東西,關於英文字母大小寫轉換的程式:

char toupper(char c)
{
    return c & 0x5F;
}

char tolower(char c)
{
    return c | 0x20;
}
關鍵在於,英文字母大小寫的ASCII碼就只差在第6個bit,所以大轉小的時候就要把該bit off掉,所以tolower就要跟0x20(二進位100000)做聯集,小轉大就是要把該bit on起來,也就是跟0x5F(二進位1011111)做交集。

0 意見:

張貼留言