zoukankan      html  css  js  c++  java
  • ASCII中关于大小写字母间隔为32的思考

    一直没有搞清楚为什么在ASCII中要把大小写字母的间隔设置为32,今天才发现这样设置的精妙之处:方便了程序对大小写字母进行转换。请看:
    =================
    十进制        32
    十六进制     20
    二进制         00100000
    =================
    在大写转小写时,我们常用的做法是对字符的数值加32,该过程如下所示:
    =========================
    字符         A                  a
    十进制     65                 97
    二进制     01000001     01100001
    字符         Z                   z
    十进制     90                 122
    二进制     01011010     00111010
    =========================
    可以看到,这个过程可以归纳为二进制值的右起第6位由0置为1,其余位不变。那么,我们可以这样来实现这个转换过程:
    lcase = ucase | 0x20
    反之,小写转大写的过程可以归纳为右起第6位由1置为0,其余位不变。那么,转换过程可以这样来实现:
    ucase = lcase & 0xdf
    注:0xdf=0b11011111
  • 相关阅读:
    洛谷 P1084 疫情控制 —— 二分+码力
    CF 600 E Lomsat gelral —— 树上启发式合并
    HBase框架基础(二)
    Shell脚本
    Kafka框架基础
    HUE搭配基础
    Oozie框架基础
    Sqoop框架基础
    Flume框架基础
    Hive框架基础(二)
  • 原文地址:https://www.cnblogs.com/pzy4447/p/3348360.html
Copyright © 2011-2022 走看看