声明:这些内容主要是面向C语言的初学者,尤其是正在学习C语言的学生。

在读王爽老师的《汇编语言》时,看到了用and 和or指令处理字母大小写转换的例子。and 和or是汇编语言中按位与和按位或操作的指令,对应C语言中的&和|操作。本文把这个例子的C语言版在这里重复一下,以便理解和扩充位运算的应用。

我们知道大小写字母的ASCII码值差32,因此我们通常采用直接加减32的方法来进行大小写字母的转换。如果要用位运算来操作,则必须先从大小写字母的ASCII码值的二进制形式入手。下表列出了部分字母的大小写的ASCII码值的二进制形式。

大写

十六进制

二进制

小写

十六进制

二进制

A

41

01000001

a

61

01100001

B

42

01000010

b

62

01100010

C

43

01000011

c

63

01100011

D

44

01000100

d

64

01100100

E

45

01000101

e

65

01100101

F

46

01000110

f

66

01100110

仔细观察上表的两列二进制形式,可以发现这样的规律:除第5位外(位数从0开始计算),大写字母和小写字母的其他各位都一样,大写字母的第5位为0,小写字母的第5位为1。因此,对于一个字母,不管原来是大写还是小写,将其第5位置0,它就必将变成大写字母;将其第5位置1,它就必将变成小写字母。下面的程序将两个大小写混合的字符串分别转换为大写和小写字母串。

//用位运算实现大小写字母转换
#include "stdio.h"
int main()
{
int i=0;
char a[6]="BaSiC";
char b[6]="MinIX";
do
{
a[i] = a[i] & 0xDF;  //将第5位置0
b[i] = b[i] | 0x20;  //将第5位置1
i++;
}
while(i<5);
printf("a = %s\nb = %s\n",a,b);
}

位运算与字母大小写转换相关推荐

  1. 位运算对字母大小写的转换

    位运算对字母大小写的转换 先定义一个字符 char c; 以下讨论默认 c 为字母 我们知道小写字母的ASCII值比其大写字母的大32,因此我们通常采取下面两种方式转换字母大小写 c = c + 32 ...

  2. java 字母大写_Java字母大小写转换的方法

    案例: 要求从控制台接收用户输入的一个字母,如果这个字母是小写,转换为大写:如果这个字母是大写,转换为小写:只能输入字母,如果是其他值,提示数据有误! 实现代码: import java.util.S ...

  3. java的字母_Java字母大小写转换的方法

    案例: 要求从控制台接收用户输入的一个字母,如果这个字母是小写,转换为大写:如果这个字母是大写,转换为小写:只能输入字母,如果是其他值,提示数据有误! 实现代码: import java.util.S ...

  4. c语言中字母大小写转换的两种办法

    起因: 牛客网一道题,需要按行输入多组字母,然后按行输出其转换大小写后的字母,我们来探讨一下. 分析: 有两个要点需要注意,一是要按行多组输入,二是要字母大小写转换.首先是按行多组输入,我们可以用wh ...

  5. C++ 字符串字母大小写转换

    C++ 字符串字母大小写转换 使用algorithm,里面的tolower(转小写)toupper(转大写) #include <iostream> #include <string ...

  6. php 英文小写变大写,PHP英文字母大小写转换函数

    例1,每个单词的首字母转换为大写:ucwords() 复制代码 代码示例: $foo = 'hello world!'; $foo = ucwords($foo);             // He ...

  7. php toupper,jquery如何进行字母大小写转换?

    字母大小写转换方法:1.使用toLowerCase()方法将大写字母转换为小写,语法""大写字母".toLowerCase()":2.使用toUpperCase ...

  8. 首字母大写转换 java,Java InitialsTransformation(字符串首字母大小写转换)

    版权声明:本文为原创博文,最终解释权归一个集 帅气 与 智慧 和 手速 于一身的男人-灭世奶神-所有!- - - - - - - - - - - - -转载:请附上--源作者 / 源博文--相关链接信 ...

  9. 7-8 字符串字母大小写转换 (15 分)

    7-8 字符串字母大小写转换 (15 分) 本题要求编写程序,对一个以"#"结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出. 输入格式 ...

  10. 字符串字母大小写转换

    7-58 字符串字母大小写转换 (15 分) 本题要求编写程序,对一个以"#"结束的字符串,将其小写字母全部转换成大写字母,把大写字母全部转换成小写字母,其他字符不变输出. 输入格 ...

最新文章

  1. mysql submission_date_UiPath如何连接MySQL
  2. 可怕!公司部署了一个东西,悄悄盯着你
  3. JQuery插件开发学习
  4. javafx 调用java_Java“地铁”表(JavaFX)
  5. 【POJ - 1556】The Doors (计算几何,线段相交)
  6. 拼多多:永远不会对孵化品牌“二选一” 扶持千家工厂触达4.4亿消费者
  7. Zabbix监控内存
  8. 局域网传输文件_WinXP系统电脑局域网传输文件的操作方法
  9. 终端SSH工具SecureCRT 9.2.0 for Mac
  10. 社交平台在网络诈骗类黑产对抗的防控
  11. [转] 暴风影音被挂马 已有28000网民遭侵袭
  12. 【BZOJ】2101: [Usaco2010 Dec]Treasure Chest 藏宝箱(dp)
  13. 【sphinx】中文声学模型训练
  14. 强劲大小核结构 三星将推八核处理器
  15. HTML和CSS基础学习
  16. 200万年薪的博士,华为到底看重什么?
  17. Windows安装Mysql提示无法定位程序输入点fesetround于动态链接库的解决方案
  18. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】(修订版)...
  19. Web开发入门不得不看
  20. raid5常见故障数据恢复方法/服务器数据恢复常用方法

热门文章

  1. 计算机英语词汇合成词有哪些,2018年12月英语四级词汇讲解丨考点归纳:合成词...
  2. 尺度不变特征变换(SIFT算法…
  3. 国足亚洲杯首败的背后:与韩国队只差一个孙兴民?
  4. python中的wx模块
  5. 3D游戏编程与设计作业五
  6. python数据分组聚合案例_《利用Python进行数据分析》十章·数据聚合与分组运算·学习笔记(二)...
  7. Python学习笔记(01 Hello World的条件输出 02 数值运算)
  8. android多点触控参数,转 android 下的webview 设置多点触控放大
  9. Hulu | 美国人民看电视流行趋势大赏(2020)
  10. 吐血实践-TiDB离线安装