找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4057|回復(fù): 9
收起左側(cè)

請教單片機程序代碼問題 如果是取高位的話,那是怎么取法的?

[復(fù)制鏈接]
ID:34693 發(fā)表于 2018-1-22 15:16 | 顯示全部樓層 |閱讀模式
代碼如下:
char TIME[7] = {0x00, 0x57, 0x10, 0x23, 0x05, 0x02, 0x17};

LCD12864_W(0x30+TIME[6]/16);               
LCD12864_W(0x30+(TIME[6]&0x0f));


請問下:TIME[6]/16, 是什么意思的?
0x17/16=啥?
如果是取高位的話,那是怎么取法的?





回復(fù)

使用道具 舉報

ID:258566 發(fā)表于 2018-1-22 16:32 | 顯示全部樓層
TIME[6]/16<==>TIME[6]>>4

回復(fù)

使用道具 舉報

ID:34693 發(fā)表于 2018-1-22 17:17 | 顯示全部樓層

非常感謝
回復(fù)

使用道具 舉報

ID:7485 發(fā)表于 2018-1-22 21:34 | 顯示全部樓層
其實從代碼的效率看,除法效率低(運行的慢),右移好些。
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2018-1-23 12:35 | 顯示全部樓層
地板說法不完全的,在此還是錯的。單字節(jié)除法一條指令便可完成,而/16用移位需要4條指令.
回復(fù)

使用道具 舉報

ID:235676 發(fā)表于 2018-1-23 13:05 | 顯示全部樓層
2路直流電機驅(qū)動模塊正反轉(zhuǎn)PWM調(diào)速+雙H橋步進電機迷你電機驅(qū)動
回復(fù)

使用道具 舉報

ID:278908 發(fā)表于 2018-1-23 14:04 | 顯示全部樓層
主要看你使用的芯片,除法和移位如何執(zhí)行的。
回復(fù)

使用道具 舉報

ID:7485 發(fā)表于 2018-1-23 14:54 | 顯示全部樓層
yzwzfyz 發(fā)表于 2018-1-23 12:35
地板說法不完全的,在此還是錯的。單字節(jié)除法一條指令便可完成,而/16用移位需要4條指令.

單字節(jié)除法4周期指令,移位指令1周期指令。在這里剛剛好執(zhí)行時間是一樣的。
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2018-1-25 12:34 | 顯示全部樓層
版主說的很對!
只是移位四次后無法保證高四位=0,為此還需要……

倒不如用 SWAP,再加一條高四位屏蔽令,也能達成除以16的目的,且也只用2個周期。
回復(fù)

使用道具 舉報

ID:279641 發(fā)表于 2018-1-25 14:53 | 顯示全部樓層
只是移位
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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