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;这种写法和我的理解错在哪了,一直脑袋懵
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’相加
学习一下哦,看看有何