根据Unicode/ASCII字符集的定义,小写字母与大写字母的区别只是前者比后者整整大32。因此……
1 class UpCase { 2 public static void main(String[] args) { 3 char ch; 4 5 for (int i = 0; i < 10; i++) { 6 ch = (char) (‘a‘ + i); 7 System.out.print(ch); 8 9 // This statement turns off the 6th bit. 10 ch = (char) ((int) ch & 65503); // ch is now uppercase 11 12 System.out.print(ch + " "); 13 } 14 } 15 }
程序输出如下所示:
aA bB cC dD eE fF gG hH iI jJ
&语句中使用的值65 503表示二进制中的1111 1111 1101 1111。因此,按位与操作就只会让ch中的第6位设置0,而其他所有位都不变。
时间: 2024-10-07 21:50:45