微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > bit型变量为何不能和字符相加

bit型变量为何不能和字符相加

时间:10-02 整理:3721RD 点击:
bit型变量只能取二进制的0和1,但是为何不能和字符相加呢,比如:    bit a = 1;
    char b = '9';
   char c = a+b;//这一句程序说运行错误,我是这样理解的:1 +‘9’字符对应的ascii码57 = 58,然后将结果送给c
疑问:char c = a +b;这种写法和我的理解错在哪了,一直脑袋懵

大神们,一直想不通啊

要强制类型转换

关键为啥要进行强制类型转换?
是不是因为字符在和数字相加时,字符对应的ASCII码值要首先转化为数字对应的数据类型,然后才能相加

问题早解决了,忘发了,关键点就是“字符和别的类型的变量相加,字符的ASCII码值首先要转化为变量对应的类型”
如int a ;
   bit b = 1;
a = (int)bit + '8';//且赋值号右边的变量的数据类型要和左边的一样

'8'是ASCII字符,在数据里面看是 char 0x38
bit一般只作为判断跳转时才用到,bit跟其他类型的变量做加法必须做强制类型转换,这是C语言的语法要求的
而且你这样写可读性也不好
别人也许会看不明白,为什么一个bit的数据要跟‘8’相加

学习一下哦,看看有何

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top