C++ 十进制转二进制 ASCII码大小写转换
2018-06-17 21:13:47来源:未知 阅读 ()
参考博客:<C++>十进制数转换成二进制显示
由于我要实现的功能局限于char类型,所以我根据参考写了一个。
1 #include <iostream> 2 using namespace std; 3 void binary(char num); 4 int main() 5 { 6 binary('a'); 7 return 0; 8 } 9 void binary(char num) 10 { 11 char bitMask = 1 << 7; 12 for (int i = 0; i < 8; i++) 13 { 14 cout << (bitMask & num ? 1 : 0); 15 num = num << 1; 16 if(i == 3) 17 cout << ' '; 18 } 19 }
运行结果如图:
为了美观,我在中间加了一个空格。接下来讨论ASCII码大小写转换的问题了,想必编程初学者都知道大写字母和小写字母之间相差的值是固定的。
大小写转换只需要加(+)或减(-)32就行了。但是,遇到不知道需要转换的字母是大写还是小写该怎么办?
请看如下代码:
1 #include <iostream> 2 using namespace std; 3 void binary(char num); 4 int main() 5 { 6 for (char big = 'A', small = 'a'; small <= 'z'; big++, small++) 7 { 8 cout << big << " "; 9 binary(big); 10 cout << " | "; 11 cout << small << " "; 12 binary(small); 13 cout << endl; 14 } 15 return 0; 16 } 17 void binary(char num) 18 { 19 char bitMask = 1 << 7; 20 for (int i = 0; i < 8; i++) 21 { 22 cout << (bitMask & num ? 1 : 0); 23 num = num << 1; 24 if(i == 3) 25 cout << ' '; 26 } 27 }
我将大写字母的ASCII码和小写字母的ASCII转成二进制进行对比。
我们发现,大写字母的ASCII码二进制形式中,第六位都为0,相反小写字母的都为1。也就是说,我将第六位置1就是转成小写字母, 置0就是转成大写字母。置1需要用到按位或,置0需要用到按位与。
1 #include <iostream> 2 using namespace std; 3 void toupper(char & ch); 4 void tolower(char & ch); 5 int main() 6 { 7 char a = 'A'; 8 cout << "first:" << a << endl; 9 toupper(a); 10 cout << "upper:" << a << endl; 11 tolower(a); 12 cout << "lower:" << a << endl << endl; 13 a = 'a'; 14 cout << "first:" << a << endl; 15 toupper(a); 16 cout << "upper:" << a << endl; 17 tolower(a); 18 cout << "lower:" << a << endl; 19 return 0; 20 } 21 void toupper(char & ch) 22 { 23 ch = ch & 0XDF; //1101 1111 24 } 25 void tolower(char & ch) 26 { 27 ch = ch | 0X20;//0010 0000 28 }
大小写字母转换就这样完成了。
NOTE:对于初学者来说void toupper(char & ch);这种写法可能没见过。可以百度一下引用的相关知识。或者可以用指针来替代,甚至直接的值传递,把结果作为返回值。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash