完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
u16 crcdata;
u8 buf[2]; buf[0]=0x12; buf[1]=0x34; 1.crcdata=buf[0]<<8+buf[1]; 2.crcdata=buf[0]<<8|buf[1]; 请问1,2两种算法的结果一样吗?如果不一样的话,结果各是多少呢? |
|
相关推荐
9个回答
|
|
基本的位操作。。。这个不能让别人帮你解答,而是要去学。。最基础的东西。百度一下:c语言 位操作。。大把
|
|
|
|
移位后高8位+低8位 与移位后高8位或上低8位结果是一样的,为什么你仿真的结果一个是0,一个是0x1234吗,运算符优先级你搞错了!
lz不妨将buf[1]=0x01试试看,就明白是什么情况了 |
|
|
|
00000001或00000001还是00000001,00000001加00000001变成00000010。
|
|
|
|
对于这种运算,自己仿真一下就知道了,把变量输出给端口,软件模拟运行,观察输出口每一次变化。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2+2=4 2*2=4 那你可以说加和乘是一样的吗
|
|
|
|
short crcdata1 = 0;
short crcdata2 = 0; short crcdata3 = 0; char buf[2]; buf[0]=0x12; buf[1]=0x33; crcdata1=(buf[0]<<8)+buf[1]; crcdata2=buf[0]<<8+buf[1]; crcdata3=buf[0]<<8|buf[1]; printf("%xrn",crcdata1); printf("%xrn",crcdata2); printf("%xrn",crcdata3); return 0; } 结果: 1233 0 1233 crcdata1 与crcdata2 不同,只是因为优先级搞错了。 相当于crcdata2=buf[0]<<(8+buf[1]); |
|
|
|
只有小组成员才能发言,加入小组>>
请问下图大疆lightbridge2遥控器主板电源芯片型号是什么?
4444 浏览 1 评论
使用常见的二极管、三极管和mos做MCU和模组的电平转换电路,但是模组和MCU无法正常通信,为什么?
316浏览 2评论
为了提高USIM卡电路的可靠性和稳定性,在电路设计中须注意的点有哪些?
305浏览 2评论
316浏览 2评论
324浏览 2评论
357浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 12:29 , Processed in 0.868559 second(s), Total 96, Slave 78 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号