OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1752|回复: 4

是不是KEIL 编译器有问题?

[复制链接]

49

主题

160

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-11-2
在线时间
41 小时
发表于 2018-5-16 14:44:48 | 显示全部楼层 |阅读模式
10金钱
unsigned char  c;
unsigned int   i;


c=(unsigned char)( i>>2+8);
上面写   c=0


下面写就对了,
c=(unsigned char)(( i>>2)+8);




是不是KEIL  编译器有问题?

最佳答案

查看完整内容[请看2#楼]

+、-运算符的优先级比高,上面先加后位移,当然是0了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

67

帖子

0

精华

高级会员

Rank: 4

积分
648
金钱
648
注册时间
2018-4-17
在线时间
152 小时
发表于 2018-5-16 14:44:49 | 显示全部楼层
+、-运算符的优先级比<<、>>高,上面先加后位移,当然是0了
回复

使用道具 举报

20

主题

450

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4910
金钱
4910
注册时间
2017-7-6
在线时间
720 小时
发表于 2018-5-16 14:55:02 | 显示全部楼层
运算和优先级问题,兄弟,+的优先级高于>>这个   i开始没赋值,上面的c=(unsigned char)( i>>2+8);这个,先2+8 =10,然后i再右移10次,但是i开始没赋值,全局变量默认0,所以c=0;
下面的c=(unsigned char)(( i>>2)+8);这个,i先右移2位等于0,然后再加8,c=8;
我是小白,很白很白的小白!!!
回复

使用道具 举报

49

主题

160

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-11-2
在线时间
41 小时
 楼主| 发表于 2018-5-16 15:19:15 | 显示全部楼层
+、-运算符的优先级比高,上面先加后位移         老大,你太牛鼻啦,
回复

使用道具 举报

20

主题

450

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4910
金钱
4910
注册时间
2017-7-6
在线时间
720 小时
发表于 2018-5-16 15:42:18 | 显示全部楼层
LIGONG004 发表于 2018-5-16 15:19
+、-运算符的优先级比高,上面先加后位移         老大,你太牛鼻啦,

晕死  我的这么详细 竟然不是我的最佳答案 呵呵啦
我是小白,很白很白的小白!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 04:47

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表