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

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)C語(yǔ)言 24位數(shù)字,如何依次左移給某個(gè)位?

[復(fù)制鏈接]
ID:980872 發(fā)表于 2021-11-16 09:10 | 顯示全部樓層 |閱讀模式
我用的是C8051F330的單片機(jī), 我現(xiàn)在有24位的數(shù)據(jù)(數(shù)據(jù)要可加可減,使用unsigned int,如unsigned long temp=0x001f2a3c,但高8位不需要),要依次把后24位(1f2a3c)發(fā)送給某個(gè)位(sdi),
我用的是_crol_(temp,1)的函數(shù),但是這個(gè)函數(shù)貌似只是循環(huán)左移后八位的數(shù),而<<貌似只能左移后16位的數(shù),
請(qǐng)教大家,有沒(méi)有什么辦法,謝謝?
回復(fù)

使用道具 舉報(bào)

ID:950257 發(fā)表于 2021-11-16 10:02 | 顯示全部樓層
(temp & (1<<n)) 就是取出temp的每一位, n 就是你要取得第幾位(可以使你說(shuō)的0-23 就是24位數(shù)據(jù))
回復(fù)

使用道具 舉報(bào)

ID:397211 發(fā)表于 2021-11-16 10:20 | 顯示全部樓層
這個(gè)問(wèn)題我這幾天正好弄過(guò)相似的,我是將這些每一位取出來(lái)放到數(shù)組里,然后通過(guò)數(shù)組就得到了想用的數(shù)
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2021-11-16 10:46 | 顯示全部樓層
用“_irol_”就能4字節(jié)32位環(huán)移了。就差一個(gè)字母
回復(fù)

使用道具 舉報(bào)

ID:980872 發(fā)表于 2021-11-16 11:36 | 顯示全部樓層
用這個(gè)_lrol_,就可以對(duì)long進(jìn)行操作了,謝謝
回復(fù)

使用道具 舉報(bào)

ID:123289 發(fā)表于 2021-11-18 15:07 | 顯示全部樓層
把它分成四個(gè)部分,每個(gè)部分一個(gè)字節(jié),傳送時(shí),最高字節(jié)不送就可以了。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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