当前位置: 代码迷 >> C语言 >> 位运算问题
  详细解决方案

位运算问题

热度:134   发布时间:2008-03-20 10:43:24.0
位运算问题
将大写字母改成小写字母的表达式: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;//大写->小写
----------------解决方案--------------------------------------------------------
  相关解决方案