位运算问题
将大写字母改成小写字母的表达式:ch|=32 为什么? 搜索更多相关的解决方案:
运算
----------------解决方案--------------------------------------------------------
举个例子,
大写A,ASCII码是65,二进制是01000001
大写a,ASCII码是97,二进制是01100001
32,二进制是00100000
自己算一下看
----------------解决方案--------------------------------------------------------
哦,谢谢了,果然是这样
----------------解决方案--------------------------------------------------------
嗯,大写字母的bit[5]=0,小写字母的bit[5]=1,
所以大写变小写的操作是 a |= (0010 0000)2进制;
所以a|32就是把bit[5]变成了1.即小写字母变成大写字母,而大写字母不受影响。
相应的,如果把小写字母变大写字母,则需要把bit[5]设置为0,
即A &= (0101 1111)2进制;即
ToUpper: A &= 95;//小写->大写
ToLower: A |= 32;//大写->小写
----------------解决方案--------------------------------------------------------