zoukankan      html  css  js  c++  java
  • 位运算应用之二——大小写转换

    问题描述:

      试编写一个程序,将输入的大写字母转换为小写字母,输入的小写字母转换为大写字母,要求用位运算完成转换过程

    算法分析:

      我们都知道大写字母A~Z的编码是65~90,小写字母的编码a~z是97~112;而大写A(65)的二进制编码为100 0001,小写字母a(97)的二进制编码为110 0001,很明显除了第5位之外其它位都是一样的,也就是说大小写是由第5位来区分的,第5位为1即为小写,第5位为0即为大写

    算法描述:

     1 /*
     2 *问题描述:试编写一个程序,将输入的大写字母转换为小写字母,输入的小写字母转换为大写字母,要求用位运算完成转换过程.
     3 *算法分析:我们都知道大写字母A~Z的编码是65~90,小写字母的编码a~z是97~112;而大写A(65)的二进制编码为100 0001,小写字母a(97)的二进制编码为110 0001,很明显除了第5位之外其它位都是一样的,也就是说大小写是由第5位来区分的,第5位为1即为小写,第5位为0即为大写。
     4 *BY : xymaqingxiang
     5 *Time :2014-05-17
     6 */
     7 
     8 #include <stdio.h>
     9 #include <stdlib.h>
    10 void main()
    11 {
    12     char ch;
    13     
    14     printf("请输入一个字母:
    ");
    15     ch = getchar();
    16     flushall();
    17     
    18     while(!(ch>'A' && ch<'z') || (ch>'Z' && ch<'a'))
    19     {
    20         printf("输入有误,请重新输入一个字母:
    ");
    21         ch = getchar();
    22         flushall();
    23     }
    24     if(ch & 32) //32 : 10 0000——判断第5位是否为1
    25     {
    26         ch = ch & 223;//223 : 1101 1111————使第5位置0,变为大写
    27     }
    28     else
    29     {
    30         ch = ch | 225;//255 : 1111 1111————使第5位置1,变为小写
    31     }
    32     putchar(ch);
    33 
    34     putchar('
    ');
    35     system("pause");
    36 }
  • 相关阅读:
    Python partition() 方法
    汽车车灯灯具系统(下)
    汽车车灯灯具系统(上)
    语义和边缘:从噪声和符号中学习
    AI解决方案:边缘计算和GPU加速平台
    GPU与显卡
    图像处理 100 问!!
    匹配算法:局部结构保留
    图像拼接技术
    SLAM的通用框架:GSLAM
  • 原文地址:https://www.cnblogs.com/xymqx/p/3734612.html
Copyright © 2011-2022 走看看