待解:通过把第6位设置为0使小写字母都变成大写字母

根据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-12-29 09:24:53

待解:通过把第6位设置为0使小写字母都变成大写字母的相关文章

写一个6位随机验证码程序,要求验证码中至少包含一个数字,一个小写字母,一个大写字母

import random,string src_list = []src_list.append(str(random.randint(1,9))) #生成一个数字src_list.append(random.sample(string.ascii_lowercase,1)[0]) #生成一个小写字母src_list.append(random.sample(string.ascii_uppercase,1)[0]) #生成一个大写字母three = random.sample(string.

解决Tomcat6解压版在64位windows系统上无法启动服务的问题

解决Tomcat6解压版在64位windows系统上无法启动服务的问题 由于客户环境为64位windows系统,开发环境一直用32位.tomcat使用6.0.20非安装版.部署时发现在64位系统下,注册服务后无法正常启动服务(直接运行startup.bat可以成功启动tomcat),日志中报错信息为: 引用 [174  javajni.c] [error] %1 不是有效的 Win32 应用程序. [994  prunsrv.c] [error] Failed creating java D:\

ubuntu 64位设置兼容32位 for ADB 命令无法运行

在虚拟机上Ubuntu系统里安装ADT开发工具,配置好环境后导入Android工程报错: 找不到Adb命令: ubuntu 12.04 64位设置兼容32位的实现REF:http://www.2cto.com/os/201210/159883.html My configure is as follows: 1. **Newwork setting:etc/apt/apt.conf2. sudo echo "deb http://archive.ubuntu.com/ubuntu/ raring

【MM系列】SAP S/4 HANA的物料编码40位设置

公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP S/4 HANA的物料编码40位设置 前言部分 大家可以关注我的公众号,公众号里的排版更好,阅读更舒适. 正文部分 虽然在S/4 HANA里物料编码已经变成40位了 但是系统里并没有默认设置成40位 需要我们手工设置一下 路径如下: CROSS-APPLICATION FUNCTIONS –> GENERAL APPLICAT

android 设置字体颜色、EditText自动输入转换成大写字母的多种方式

在TextView上面设置某一个字的字体颜色为指定颜色时,可以通过java类SpannableString类和Html语言来实现. (一)SpannableString类方式 private void setText(TextView t){ String text = t.getText().toString().trim(); SpannableString span = new SpannableString(text); span.setSpan(new ForegroundColorS

centos6.5(32位)安装laravel5.0

centos6.5(32位)安装laravel5.0: 首次安装使用,参考了中文文档,文档有些地方不仔细看很容易踩到坑,记录下我安装的过程: 一.环境:PHP 5.5.31.centos6.5(32位) 二.安装php,安装就不必多说,贴下命令方便自己记录 1.rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm 2.yum install php55w  php55w-bcmath php55w-cli php55w-common  ph

js中setTimeout()时间参数设置为0的探讨

起因源于一道前端笔试题: var fuc = [1,2,3]; for(var i in fuc){ setTimeout(function(){console.log(fuc[i])},0); console.log(fuc[i]); } 问:控制台会如何打印? chrome打印结果如下: 虽然setTimeout函数在每次循环的开始就调用了,但是却被放到循环结束才执行,循环结束,i=3,接连打印了3次3. 这里涉及到javascript单线程执行的问题:javascript在浏览器中是单线程

WIN7 32位系统安装VC6.0中文企业版提示can&#39;t run 16-bit windows program

整了两天,一直以为是电脑系统原因,或者说是VC++6.0的版本太老了. 万万没想到:这仅仅只是中文路径问题啊,以前都是听人说的,只是时间长了,就被我给忽视掉了. WIN7 32位系统安装VC6.0中文企业版提示can't run 16-bit windows program

【c语言】实现对一个8bit数据(unsigned char 类型)的指定位(例如第n位)置0或者置1操作,并保持其他位不变

// 实现对一个8bit数据(unsigned char 类型)的指定位(例如第n位)置0或者置1操作,并保持其他位不变 #include <stdio.h> void bit_set(unsigned char *p_data, unsigned char position, int flag) { unsigned c; unsigned char a = 1; a = a << (position - 1); if (flag == 1) { *p_data = *p_dat