原文地址:http://bbs.bccn.net/thread-300823-1-1.html
代码:a=a^1<<5;
解释:
a=a^1<<5;
这个算法优先级为<<
以8位为例子
1的二进制为 0000 0001
<<5 左移5位 那么为 0010 0000
我们知道大小写之间的 转换值是 32 对应的二进制为
0010 0000
这时 进行异或运算 0^1=1 1^1=0 看大写换小写了 小写换大写了
同理 可以用 按位或 | 0|1=1 1|1=1 看大写变小写 小写没变
注释:目前理解不了优先级,以后再回头研究,呵呵~~~
位操作实现大小写转换
本文介绍了一种使用位操作实现字符大小写转换的方法。通过将1左移五位得到大写转小写的偏移值,并利用异或运算实现转换。此外还探讨了另一种方法,即使用按位或运算来实现部分字符的大小写转换。
921

被折叠的 条评论
为什么被折叠?



