关于字符ASCII与字符相加输出的错误
来源:互联网 发布:矩阵的秩计算 编辑:程序博客网 时间:2024/06/05 07:55
# include <iostream>using namespace std;int main(){char a = ('1'-'0'+'4'-'0')%10 ;a = a + '0'; //a = 5 + '0';cout<<a<<endl;return 0;}
此上2种打印结果为:
5
# include <iostream>using namespace std;int main(){char a = ('1'-'0'+'4'-'0')%10 ;cout<<(a+'0')<<endl;return 0;}
此种打印结果为:
53
已知‘0’的ASCII为48 ,得出53原因
main函数下一句代码分析:
a在与数字10进行取余操作的时,字符对应的ASCII值进行相加的,得出ASCII值为5的字符,
第二句分析:
由于是a + ‘0’是字符相加,所以是ASII值相加,隐形的转化为ASCII数值,所以打印的是‘5’对应的ASCII值53
证明代码:
# include <iostream>using namespace std;int main(){char a = ('1'-'0'+'4'-'0')%10 ;cout<<(char)(a+'0')<<endl;return 0;}
打印结果:
5
上面进行了char类型的强制转换,得出‘5‘
得证出:以上第二句代码分析进行了ASCII数值的隐形转换。
所以最上面粘贴的代码中
a = a + '0'; //a = 5 + '0';
相加后,赋值给a,进行了隐形转换,从而转换成字符‘5’
总结:
以前值只注意到整形,浮点型,字符之间的隐形转换,这里还得注意字符与ASCII数值之间的隐形转换。(应该ASCII值也算是整形)
0 0
- 关于字符ASCII与字符相加输出的错误
- 字符ascii码与字符的转换
- 关于字符的读入与输出
- 关于ASCII字符码
- 关于java中字符、字符串、整数相加输出的小整理
- 字符串指针与字符数组区别(二)--字符串输出与指针的相加减
- 关于ASCII字符的那些事儿
- 根据ASCII码输出字符
- ASCII码与字符
- 多字节与宽字节处理及ASCII码页转换及利用宽字符输出所有的字符
- UNICODE与ASCII字符的转换
- ascii码与字符的相互转换
- ascii码与字符的转换
- python-ASCII与字符间的转换
- js字符与ASCII码互转的方法
- 习题:输入字符z,输出其前后相邻的字符和字符z的ASCII码
- 整型与字符型相加
- ASCII 字符的艺术
- 第三周作业——冒泡排序和归并排序
- 抖动窗口的实现
- iOS开发--疑问篇
- FIR滤波器基础
- openfire开发
- 关于字符ASCII与字符相加输出的错误
- jquery实现下拉菜单的二级联动,利用json对象从DB取值显示联动
- 模板引擎之 NVelocity 学习
- 关联属性见解
- OpenGL学习笔记---黑屏解决之透视投影
- Android Activity界面切换添加动画特效(转)
- LeetCode 3Sum Closest
- Plus One
- UNIX/Linux进程间通信IPC系列(五)信号