*停權中*
|
我來解釋一下為什麼做XOR就可以達到大小寫互換的功能
把XOR邏輯閘的K MAP畫出來看
0 0 0
0 1 1
1 0 1
1 1 0
因為英文字母大小寫在ascii的差距為32
所以目標是把每個字元的第六個bit跟1來做運算,如果input不等於1,經過xor運算後,他就會變成1 (目標在第六個bit作toggle),反之亦然
舉例
A=65,當我們要把他轉成a=97時,我們就要把第6個bit(32的位置)作toggle,其餘的bit則不可以被影響到
A(65)____1 0 0 0 0 0 1
XOR 32___0 1 0 0 0 0 0
------------------------
a(97)_____1 1 0 0 0 0 1
如果你要反著做
a(97)____1 1 0 0 0 0 1
XOR 32___0 1 0 0 0 0 0
------------------------
A(65)____1 0 0 0 0 0 1
|