找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 3496|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

C語(yǔ)言語(yǔ)句YPR[0]=(BUF[1]<<8|BUF[2]);如何理解?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:374198 發(fā)表于 2019-8-5 17:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
請(qǐng)教一下,YPR[0]=(BUF[1]<<8|BUF[2]); 這句話在c語(yǔ)言里怎樣理解》???
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:377268 發(fā)表于 2019-8-5 22:23 | 只看該作者
數(shù)據(jù)拆包發(fā)送后又合成嗎/, 串口通信一般就是8位, 想發(fā)送個(gè)16位的數(shù)據(jù)就需要拆包,高八位 第八位裝在兩個(gè)8位的變量里。接收到之后再進(jìn)行合成。 你的代碼就是將BUF[1]中的數(shù)作為高位,BUF[2]中的數(shù)作為低位 ,合成的位數(shù)放進(jìn)YRR[0]
回復(fù)

使用道具 舉報(bào)

板凳
ID:529540 發(fā)表于 2019-8-6 15:38 | 只看該作者
額,就這樣理解,按語(yǔ)句一步步運(yùn)算啊,可以直接定義幾個(gè)值然后按這樣運(yùn)算然后看看結(jié)果是怎么樣的,加深印象啊,可以幫助你更深入的了解這語(yǔ)句的意思,會(huì)有什么樣的結(jié)果,你就知道為什么怎么寫了。
回復(fù)

使用道具 舉報(bào)

地板
ID:362259 發(fā)表于 2019-8-6 18:09 | 只看該作者
這是算術(shù)優(yōu)先級(jí)的問(wèn)題吧。這兩個(gè)都是雙目運(yùn)算符,而移位運(yùn)算符的優(yōu)先級(jí)是大于位運(yùn)算符的,所以你只要先將BUF[1]<<8,然后結(jié)果或上BUF[2]
回復(fù)

使用道具 舉報(bào)

5#
ID:596346 發(fā)表于 2019-8-6 20:55 | 只看該作者
這是一個(gè)賦值語(yǔ)句,把等式右邊的值賦給左邊;先來(lái)看左邊是怎么運(yùn)算的,由于移位運(yùn)算符<<的優(yōu)先級(jí)大于位運(yùn)算符|,所以先計(jì)算BUF[1]左移八位,然后再或上BUF[2],或的操作可以理解為兩個(gè)數(shù)相加;通俗理解的話可以舉個(gè)列子,假設(shè)BUF[1]的值為0000 0001b(為方便描述,故用二進(jìn)制表示) ,左移八位后變成10000 0000b   ,BUF[2]的值為1  ,然后兩者相加變?yōu)?0000 0001 b
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表