有关C语言移位的问题

2019-03-24 11:12发布

unsigned char i;unsigned long buf;buf = 1<<i;
当i<16的时候,一切正常但是当i>16或i=16的时候,编译提示 shift count is too large
很疑惑,long是32位的呀  ,怎么16位以上就移不了了?
求助~ 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
zhengenhao
1楼-- · 2019-03-24 18:02
 精彩回答 2  元偷偷看……
zhengenhao
2楼-- · 2019-03-24 18:13
< :TI_MSP430_内容页_SA7 --> MSP430就是16位单片机,能直接移位32位吗
guo8113
3楼-- · 2019-03-24 21:30
嗯,我觉得也是,不可以移32位的,16位msp
常见泽1
4楼-- · 2019-03-24 21:31
 精彩回答 2  元偷偷看……
juring
5楼-- · 2019-03-24 22:38
多谢各位~
modernthink
6楼-- · 2019-03-25 02:01
long的变量可以位移16位以上啊?是不是楼主别的什么地方有问题?

一周热门 更多>

相关问题

    相关文章