瀏覽單個文章
cheneyen
*停權中*
 

加入日期: Jun 2002
文章: 90
我來解釋一下為什麼做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
舊 2010-06-09, 02:04 PM #37
回應時引用此文章
cheneyen離線中