完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
bit型变量只能取二进制的0和1,但是为何不能和字符相加呢,比如: bit a = 1;
char b = '9'; char c = a+b;//这一句程序说运行错误,我是这样理解的:1 +‘9’字符对应的ascii码57 = 58,然后将结果送给c 疑问:char c = a +b;这种写法和我的理解错在哪了,一直脑袋懵 |
|
相关推荐
6个回答
|
|
大神们,一直想不通啊
|
|
|
|
要强制类型转换
|
|
|
|
关键为啥要进行强制类型转换? 是不是因为字符在和数字相加时,字符对应的ASCII码值要首先转化为数字对应的数据类型,然后才能相加 |
|
|
|
问题早解决了,忘发了,关键点就是“字符和别的类型的变量相加,字符的ASCII码值首先要转化为变量对应的类型”
如int a ; bit b = 1; a = (int)bit + '8';//且赋值号右边的变量的数据类型要和左边的一样 |
|
|
|
lm51323 发表于 2016-4-22 00:08 '8'是ASCII字符,在数据里面看是 char 0x38 bit一般只作为判断跳转时才用到,bit跟其他类型的变量做加法必须做强制类型转换,这是C语言的语法要求的 而且你这样写可读性也不好 别人也许会看不明白,为什么一个bit的数据要跟‘8’相加 |
|
|
|
学习一下哦,看看有何
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2027 浏览 0 评论
STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
1209 浏览 0 评论
2786 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2557 浏览 3 评论
5240 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-12 07:13 , Processed in 0.590587 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号