首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C语言运算中的 数值类型冲突 的有关问题

2012-04-05 
C语言运算中的 数值类型冲突 的问题我定义:float axis_datxchar medium_buf[15] {0}memcpy(medium_buf

C语言运算中的 数值类型冲突 的问题
我定义:float axis_datx; char medium_buf[15] = {0};  

memcpy(medium_buf,p2,14); 
axis_datx = ((medium_buf[5]>>4)*10 + medium_buf[5]&0x0f+(medium_buf[6]>>4)*0.1); //忽略千分位

这样会报错:Error[Pe031]: expression must have integral type 

然后换成这样:
 axis_datx = (((medium_buf[5]>>4) + medium_buf[5]&0x0f)*10+(medium_buf[6]>>4)*0.1); //忽略千分位

就可以通过,这是为什么??

[解决办法]
因为加法的优先级比 & 高
这样就可以了:
axis_datx = ((medium_buf[5]>>4)*10 + (medium_buf[5]&0x0f)+(medium_buf[6]>>4)*0.1); //忽略千分位

热点排行