基于位运算的大小写转换

基于位运算的大小写转换


Author:Aylan,未得到作者允许禁止转载

​ 总所周知,英文26个字母的大小写在计算机中是以Ascill码存储的,这里基于它们的二进制分析出能否使用二进制的位操作实现大写转换小写转换大小写互转

大写 ascill码 二进制表示 小写 ascill码 二进制表示
A 65 100001 a 95 110001
B 66 100010 b 96 110010
C 67 100011 c 97 110011
Z 90 101111 z 122 111111

​ 基于上表归纳可以看出,大写与小写的区别在于第五位二进制处不同,只要我们可以通过某种运算将第五位变为0或者变为1,就可以实现位运算的大小写转换。

转小写(将0转换为1)

​ 我们用数学语言描述一下,意味无论我们输入大写还是小写,函数总能为我们转换为对应的小写字母。
设 有 , δ ∈ [ A , a ] 则 f ( δ , Γ ) = a 恒 等 于 已 知 f ( x , Γ ) 是 一 组 二 元 运 算 , 求 解 f ( x , Γ ) \begin{aligned} & 设有,\delta \in [A,a] \\ & 则f(\delta,\Gamma) = a恒等于 \\ & 已知f(x,\Gamma)是一组二元运算,求解f(x,\Gamma) \end{aligned} δ[A,a]f(δ,Γ)=af(x,Γ)f(x,Γ)

{ A : 1 0 0 0 0 1 a : 1 1 0 0 0 1 } \begin{Bmatrix} A:&1&0&0&0&0&1 \\ a:&1&1&0&0&0&1 \\ \end{Bmatrix} { A:a:110100000011}

​ 看上面的对比情况,可以理解为通过在A或者a实现某个一元运算,使结果恒等于*1****形式,这里*意味的保留原来的值,使第五位恒等于1。

​ 通过分析,我们需要做的是保留1-4位以及6位的情况下,使第5位恒为1。一般保留某位上的信息的同时还需要为某位增加值时,我们可以采用OR运算,即是逻辑|,逻辑|可以在运算式子满足对应位上至少有一位为1时,则对应结果位为1。由于其他1-4、6位会相应保留,我们不需要关注,我们只需保证第5位的值恒为1,下面给出对应逻辑
{ 大 写 转 小 写 : A : 1 0 0 0 0 1 o r 0 1 0 0 0 0 a : 1 1 0 0 0 1 } { 小 写 转 小 写 : a : 1 1 0 0 0 1 o r 0 1 0 0 0 0 a : 1 1 0 0 0 1 } \begin{Bmatrix} 大写转小写:\\ A:&1&0&0&0&0&1 \\ or &0&1&0&0&0&0&\\ \hline a:&1&1&0&0&0&1 \\ \end{Bmatrix} \\ \begin{Bmatrix} 小写转小写:\\ a:&1&1&0&0&0&1 \\ or &0&1&0&0&0&0&\\ \hline a:&1&1&0&0&0&1 \\ \end{Bmatrix} <

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值