完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
Hai,在这个代码中,我想组合两个8位reg并形成一个16位结果无符号char data1,data2,data3,d0,d1;uint16_t a0,a1,x,y,d2,d3,z;d0=data1;//Mo.data reg data1=data2;我的代码有错误吗?让我知道…
|
|
相关推荐
19个回答
|
|
|
你试着删除评论符号了吗?你能解释一下,你所期待的和你真正得到的吗?
|
|
|
|
|
|
d0<<8因为d0是8位变量,所以向左移动8将总是导致0。尝试将d0定义为16位变量EDIT:错误、错误、错误-忽略我-整数提升将处理这个问题
|
|
|
|
|
|
D2=((无符号INT)D0& lt;& 8;)d1;
|
|
|
|
|
|
…哪个C编译器?XC8自动在变速前提升,而C18没有。
|
|
|
|
|
|
删除。错误的线程。对不起:)
|
|
|
|
|
|
你也可以通过一个保存在移位中的指针来完成:
|
|
|
|
|
|
或者定义一个联盟…
|
|
|
|
|
|
原始代码将工作良好的假设/ /被删除。不需要任何其他的改变。
|
|
|
|
|
|
XC8是智能的,实际上不做移位。BUT1.SHIFT2.Posis3.Unon是最常见的方式。最好的(假设有一个)将根据编译器、版本和优化级别而变化。
|
|
|
|
|
|
在算术不是C编译器之前不提升8位值的编译器。
|
|
|
|
|
|
…电路模拟器中的真正的ICE不是模拟器。
|
|
|
|
|
|
考虑到所有关于哪个编译器以什么顺序做什么的模糊性和问题,我写如下内容:d2=((uint)d0)<<8);//.first,然后转移到MSBd2|=((uint)d1);//.,以确保对齐,然后逐位-OR进入LSBIf THIS不会产生准确的cODE,编译器太破了以至于不能信任。当一些未知的人从现在开始试图维护代码时,就不会有混淆的意图。
|
|
|
|
|
|
Bitwise,不合乎逻辑。
|
|
|
|
|
|
抓好,谢谢。原来的帖子已经被纠正了。
|
|
|
|
|
|
“……一些未知的人出现了……”这个人可能会被混淆,如果没有被纠正的逻辑IOR。我认为比简单的东西有更复杂的编码。
|
|
|
|
|
|
代码总是正确的。这是错误的评论——“逻辑”这个词而不是“按位”。
|
|
|
|
|
|
啊,是的,但是10年后阅读评论的人可能完全被抛弃,不知所措。
|
|
|
|
|
|
没错,这就是为什么我很快纠正了评论,并感谢用户“MLP”识别它。
|
|
|
|
|
|
有时,在被编辑的文章上写下对编辑的解释也很好,显示旧的和新的,这样就更清楚什么被更改了,IMHO。
|
|
|
|
|
只有小组成员才能发言,加入小组>>
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
473 浏览 0 评论
5793 浏览 9 评论
2334 浏览 8 评论
2224 浏览 10 评论
请问是否能把一个ADC值转换成两个字节用来设置PWM占空比?
3530 浏览 3 评论
1122浏览 1评论
有偿咨询,关于MPLAB X IPE烧录PIC32MX所遇到的问题
1095浏览 1评论
我是Microchip 的代理商,有PIC16F1829T-I/SS 技术问题可以咨询我,微信:A-chip-Ti
872浏览 1评论
MPLAB X IDE V6.25版本怎么对bootloader和应用程序进行烧录
475浏览 0评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 22:37 , Processed in 1.203151 second(s), Total 108, Slave 91 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1510