由ASCII码表可知大小写相差32=2^5,相应大小写化为二进制如下
ch | dec | bin | CH | dec | bin |
---|---|---|---|---|---|
a | 97 | 0110 0001 | A | 65 | 0100 0001 |
b | 98 | 0110 0010 | B | 66 | 0100 0010 |
c | 99 | 0110 0011 | C | 67 | 0100 0011 |
d | 100 | 0110 0100 | D | 68 | 0100 0100 |
e | 101 | 0110 0101 | E | 69 | 0100 0101 |
可见只有第5位(从右边第0位数起)不同,因此利用异或、与、或三种运算,保持其他位不变而只改变该位即可。
- 大写变小写,小写变大写
ch ^= 32, 即按位异或二进制 0010 0000 - 全部变小写
ch |= 32, 即按位或二进制 0010 0000 - 全部变大写
ch &= -33, 即按位与二进制 1101 1111
最后
以上就是单身日记本最近收集整理的关于位运算实现大小写快速转换由ASCII码表可知大小写相差32=2^5,相应大小写化为二进制如下的全部内容,更多相关位运算实现大小写快速转换由ASCII码表可知大小写相差32=2^5内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复