回答LZ的疑问之前先说明0x20是16进制的20,也就是10进制的32,2进制的0010 0000,
这是什么意思,为什么会选择0x20,有什么特殊性吗?
其实这个方法就是大写字母变小写,小写变大写,大小写的Ascii值正好差了32,比如小写a是10进制97,大写a是10进制65,不知道这么说LZ是否明白?
这是什么意思,为什么会选择0x20,有什么特殊性吗?
其实这个方法就是大写字母变小写,小写变大写,大小写的Ascii值正好差了32,比如小写a是10进制97,大写a是10进制65,不知道这么说LZ是否明白?
解决方案 »
- 对字符进行解析
- 刚学hashSet,请教一问题
- 返回一个字段的值|*|*|*|*|*|*|
- JAVA中的eval , 能计算字符串的算数公式(源代码)
- PipedInputStream类的一个问题
- 内部类声明为public 和 private 有什么区别?
- 请哪位大侠解释一下,什么是PreparedStatement语句池,如何实现。rowset中的PreparedStatement也有此特性吗?谢谢
- 请教大虾,如何才能得到一个日期所属的那个周的第一天?
- 侯捷译的<<Thinking in Java>>怎么附带的光盘没有例子的原码啊?全是C++的,有没搞错
- 关于WebLogic和Apache的连接问题?一定帮帮小弟!!!
- 驱动加载报错
- string 转 byte 的问题
但这这句是做干什么的,为什么要取反再与一下
chs[i] & (~mask);
有特殊性,你这个方法的功能是:将一个字符串了的大写字母转化为对应的小写字母,小写字母保持原样。~mask=11011111,chs[i] & (~mask)就是屏蔽了chs[i]的左起第三位。例如A和a的做起第三位不同,因此算过之后都会得到a。因此会是上述功能。
(~mask)的二进制表示是1101 1111.
chs[i] & (~mask)的意思就是,把chs[i]的bit 5置为0,相当于在chs[i]上减去32.