PIC单片机C语言int与char相乘

乘后的数据类型是int吗,ADRESH是AD的高位,我能不能直接AD=ADRESH*256;能不能这样ADRESH这个是特殊功能寄存器... 乘后的数据类型是int吗,ADRESH是AD的高位,我能不能直接AD=ADRESH*256;能不能这样
ADRESH这个是特殊功能寄存器
展开
 我来答
lphaff
2014-12-03 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1565
采纳率:72%
帮助的人:633万
展开全部
这个直接移位就可以实现啊
如AD=ADRESH<<8,即可实现取其高八位
如果再取低八位合并成16位的话
那就AD=ADRESH<<8 | ADRESH&0x00FF
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦舞湖畔
2014-12-03 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:118
采纳率:0%
帮助的人:110万
展开全部
你的意思是AD = ADRESH左移8位,但ADRESH是个8位寄存器,怕结果溢出。
那保险起见你可以:
unsigned int adresh = ADRESH;
AD = adresh << 8;

AD = ADRESH * (unsigned int)256;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0开拓者0
2014-12-03 · TA获得超过1404个赞
知道小有建树答主
回答量:1333
采纳率:72%
帮助的人:378万
展开全部
乘256相当于往高位 左移八位,你直接或运算然后移位得了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大哥好坏
2014-12-03 · 超过21用户采纳过TA的回答
知道答主
回答量:123
采纳率:0%
帮助的人:51.2万
展开全部
应该可以的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式