PIC单片机C语言int与char相乘
乘后的数据类型是int吗,ADRESH是AD的高位,我能不能直接AD=ADRESH*256;能不能这样ADRESH这个是特殊功能寄存器...
乘后的数据类型是int吗,ADRESH是AD的高位,我能不能直接AD=ADRESH*256;能不能这样
ADRESH这个是特殊功能寄存器 展开
ADRESH这个是特殊功能寄存器 展开
4个回答
展开全部
这个直接移位就可以实现啊
如AD=ADRESH<<8,即可实现取其高八位
如果再取低八位合并成16位的话
那就AD=ADRESH<<8 | ADRESH&0x00FF
如AD=ADRESH<<8,即可实现取其高八位
如果再取低八位合并成16位的话
那就AD=ADRESH<<8 | ADRESH&0x00FF
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思是AD = ADRESH左移8位,但ADRESH是个8位寄存器,怕结果溢出。
那保险起见你可以:
unsigned int adresh = ADRESH;
AD = adresh << 8;
或
AD = ADRESH * (unsigned int)256;
那保险起见你可以:
unsigned int adresh = ADRESH;
AD = adresh << 8;
或
AD = ADRESH * (unsigned int)256;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
乘256相当于往高位 左移八位,你直接或运算然后移位得了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该可以的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询