430的shift count is too large的问题

2019-08-04 21:14发布

MSP430中unsigned long是32bit,左移16位及以上时会提示“shift count is too large".据说是跟MSP430是16单片机有关,可是为什么右移16位,甚至24位时没有该类提示呢?是不是因为右移是除法操作,数越来越小,而左移是乘法操作,数越来越大?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
eydj2008
2019-08-04 23:01
为了后来者 这样就行了 采用标标的C编 译  反汇编时 直接将8位左移不行 超出了范围

#define UcharToLONG(LONG24,LONG16,LONG8,LONG0)     ((u32)( ((u32)LONG24<< 24) | ((u32)LONG16<< 16)| ((u32)LONG8<< 8) | (u32)LONG0))

一周热门 更多>