关系运算符在这里实际上都是位运算 只写了第一个函数的注释,分析过程可借助windows自带的计算器 帮助里能查到的就没贴出来,浪费论坛空间[em04] Function d(s) '所有转大写 '大写比小写大32,大写字母第6位总为0,小写第6位为1 '32 :0010 0000 'not 32:1101 1111 '按位与 **** **** '结果 **0* **** Dim arr() As Byte arr = s For i = LBound(arr) To UBound(arr) Step 2 arr(i) = arr(i) And (Not 32) Next d = arr End Function Function u(s) As String '所有转小写 Dim arr() As Byte arr = s For i = LBound(arr) To UBound(arr) Step 2 arr(i) = arr(i) Or 32 Next u = arr End Function
Function l(s) '大小写互转 Dim arr() As Byte arr = s For i = LBound(arr) To UBound(arr) Step 2 arr(i) = arr(i) Xor 32 Next l = arr End Function Sub test() Dim arr() As Byte s = "LeolEe" Debug.Print u(s), d(s), l(s) End Sub
[此贴子已经被作者于2009-10-5 19:47:11编辑过] |