当前位置: 首页 > news >正文

位运算切换大小写

一. ASCII码表:字母篇(附二进制解析)​

大写ASCII码(十进制)二进制表示小写ASCII码(十进制)二进制表示
A6501000001a9701100001
B​6601000010b​9801100010
C​6701000011c​9901100011
D​6801000100d​10001100100
E​6901000101e​10101100101
F​7001000110f​10201100110
G​7101000111g​10301100111
H​7201001000h​10401101000
I​7301001001i​10501101001
J​7401001010j​10601101010
K​7501001011k​10701101011
L​7601001100l​10801101100
M​7701001101m​10901101101
N​7801001110n​11001101110
O​7901001111o​11101101111
P​8001010000p​11201110000
Q​8101010001q​11301110001
R​8201010010r​11401110010
S​8301010011s​11501110011
T​8401010100t​11601110100
U​8501010101u​11701110101
V​8601010110v​11801110110
W​8701010111w​11901110111
X​8801011000x​12001111000
Y​8901011001y​12101111001
Z​9001011010z​12201111010

二. ​核心规律解析

2.1 大小写差值恒定

  • 大写字母比小写字母的ASCII码小32​(例如:A=65,a=97 97-65=32)
  • 这正是位运算中通过±32或^32切换大小写的底层原理

2.2 ​二进制第6位是分水岭

  • 观察二进制表示,​第6位(从右往左数,起始为0)​ 的差异:
    • 大写字母:0xxxxx(第6位为0)
    • 小写字母:1xxxxx(第6位为1)
  • 异或运算^32(即00100000)会翻转第6位,实现大小写转换

2.3 运算演示

  • 大写变小写、小写变大写:字符 ^= 32
    异或操作:相同为0,不同为1 (相当于不进位加法)
    在这里插入图片描述
  • 大写转小写,小写不变 :字符 |= 32
  • 大写不变、小写变大写 :字符 &= 33 (有问题)

三、测试代码

public class Main {public static void main(String[] args) {char[] arr = new char[]{'a','B','c','D','e','F','g','H','i','J','k','L','m','N','o','P','q','R','s','T','u','V','w','X','y','Z'};for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}// 输出 a B c D e F g H i J k L m N o P q R s T u V w X y ZSystem.out.println(); // 大写转小写,小写变大写
//        for (int i = 0; i < arr.length; i++) {
//            arr[i] ^= 32;
//        }// 输出:A b C d E f G h I j K l M n O p Q r S t U v W x Y z// 大写转小写,小写不变for (int i = 0; i < arr.length; i++) {arr[i] |= 32;}// 输出:a b c d e f g h i j k l m n o p q r s t u v w x y zfor (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");}}
}

相关文章:

  • C 语言 第五章 指针(5)
  • MATLAB 中zerophase函数——零相位响应
  • (B题|矿山数据处理问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • 「面白い」日本 课文详解
  • 2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析
  • FreeSWITCH 发送 sip message 的 lua 程序
  • 【C语言常用字符串解析】
  • 解锁 C++26 的未来:从语言标准演进到实战突破
  • 负载均衡深度实践:基于Nginx+Keepalived的高可用方案与Zabbix监控设计
  • archlinux wine 运行windows程序
  • Python学习笔记(第三部分)
  • 人工智能对未来工作的影响
  • 三生原理的离散生成逻辑如何与复分析结合?
  • Python字典(dict)详解:从创建到操作全掌握
  • 产品设计三板斧与抓住事物本质的关键意义
  • 前端面试每日三题 - Day 21
  • 三元运算符与扩展运算符
  • 正则表达式:精准匹配,高效处理文本
  • (C题|社交媒体平台用户分析问题)2025年第二十二届五一数学建模竞赛(五一杯/五一赛)解题思路|完整代码论文集合
  • jupyterlab建议安装的两个插件
  • 马克思主义理论研究教学名师系列访谈|高福进:思想政治理论课要伴随时代不断更新和变化
  • 西湖大学2025年上海市综合评价招生简章发布
  • 内蒙古公开宣判144件毁林毁草刑案,单起非法占用林地逾250亩
  • 圆桌|如何应对特朗普政府的关税霸凌?一种联合国视角的思考
  • 魔都眼|静安光影派对五一启幕:苏河湾看徐悲鸿艺术画作
  • 《中国奇谭》首部动画电影《浪浪山小妖怪》定档8月2日