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

位运算切换大小写

一. 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] + " ");}}
}
http://www.xdnf.cn/news/3315.html

相关文章:

  • 数字智慧方案6158丨智慧医疗解决方案精华版(58页PPT)(文末有下载方式)
  • Spark,集群搭建之Yarn模式
  • go实现双向链表
  • Unity SpriteRenderer(精灵渲染器)
  • Linux常用命令27——userdel删除用户
  • 如何阅读GitHub上的深度学习项目
  • 论文报错3
  • js文件加密。安装 Terser
  • C++负载均衡远程调用学习之TCP连接封装与TCPCLIENT封装
  • 审计专员简历模板
  • 【Hot 100】23. 合并 K 个升序链表
  • 【深度学习新浪潮】小米MiMo-7B报告内容浅析
  • MATLAB中removedelay函数用法
  • 区间贪心 (区间端点处理)
  • llamafactory-cli webui启动报错TypeError: argument of type ‘bool‘ is not iterable
  • 《AI大模型应知应会100篇》第41篇:多轮对话设计:构建高效的交互式应用
  • CentOS 7 下安装 supervisor-3.4.0-1.el7.noarch.rpm 详细步骤
  • QMK固件开发指南:构建您的第一个固件
  • 22.2Linux的I2C驱动实验(编程)_csdn
  • 2024年12月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试
  • Qt指南针
  • 9. 深入Spring AI:刨析 ChatMemory
  • 从MCP基础到FastMCP实战应用
  • 攻防世界 - Web - Level 4 | Confusion1
  • qemu学习笔记:QOM
  • AWS CloudFront全球加速利器:解析出海业务的核心优势与最佳实践
  • 2025五一数学建模ABC题选题建议,思路模型分析
  • Hive数据倾斜 常见解决办法
  • 深度学习框架搭建(Vscode/Anaconda/CUDA/Pytroch)
  • 基于单片机的音频信号处理系统设计(三)