微控制器C語言實現迴圈移位 (轉)
微控制器C語言實現迴圈移位 (轉)[@more@]
首先宣告:我學習微控制器C語言還不到半年,所以我還是菜鳥,我貼出的東西或許你們都知道,但我只想把我學習的經歷給記錄下來,希望你能找到你所想要的.
我記得做學微控制器做的第一個實驗就是做迴圈彩燈的實驗,如果用RL和RR很容易實現迴圈移位,但是C語言的移位指指令不能迴圈,移了後以0填充。
如果用C實現迴圈移位呢?
我的思路是:
比如將a=0x45迴圈左移二位。
a迴圈左移n位,即將原來右面(8-n)位左移n位,而將原來左端的n位移到最右面n位。
1、將a的左端n位先放到b中的高n位中
b=>>(8-n);
2、將a左移n位,其右面高n位被補0
c=<3、將b,c進行或運算
a=c|b;
如下:
main()
{
unsigned char a=0x45,b,c;
unsigned int n=2;
b=a>>(8-n)
c=a< a=c|b;
}
記得我才學微控制器的時候做的第一個實驗就是迴圈彩燈(那時候用的彙編)
學微控制器C語言的時候,第一個實驗當然也就是迴圈彩燈了,C沒有直接迴圈移位的指令沒關係,用上面的語句即可實現。:)
首先宣告:我學習微控制器C語言還不到半年,所以我還是菜鳥,我貼出的東西或許你們都知道,但我只想把我學習的經歷給記錄下來,希望你能找到你所想要的.
我記得做學微控制器做的第一個實驗就是做迴圈彩燈的實驗,如果用RL和RR很容易實現迴圈移位,但是C語言的移位指指令不能迴圈,移了後以0填充。
如果用C實現迴圈移位呢?
我的思路是:
比如將a=0x45迴圈左移二位。
a迴圈左移n位,即將原來右面(8-n)位左移n位,而將原來左端的n位移到最右面n位。
1、將a的左端n位先放到b中的高n位中
b=>>(8-n);
2、將a左移n位,其右面高n位被補0
c=<
a=c|b;
如下:
main()
{
unsigned char a=0x45,b,c;
unsigned int n=2;
b=a>>(8-n)
c=a<
}
記得我才學微控制器的時候做的第一個實驗就是迴圈彩燈(那時候用的彙編)
學微控制器C語言的時候,第一個實驗當然也就是迴圈彩燈了,C沒有直接迴圈移位的指令沒關係,用上面的語句即可實現。:)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-957956/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料結構】迴圈佇列 C語言實現資料結構佇列C語言
- C 語言實現使用靜態陣列實現迴圈佇列陣列佇列
- C 語言實現使用動態陣列實現迴圈佇列陣列佇列
- C語言——迴圈結構(for迴圈,while迴圈,do-while迴圈)C語言While
- 陣列迴圈移位陣列
- C語言實驗——for迴圈列印圖形(迴圈結構)(sdut oj)C語言
- 雙向迴圈連結串列基本操作的實現(C語言)C語言
- C 語言使用非迴圈雙向連結串列實現佇列佇列
- 詳解Go語言排程迴圈原始碼實現Go原始碼
- C語言程式設計學習中while迴圈和do……while迴圈C語言程式設計While
- C語言學習【3】——判斷與迴圈C語言
- 第04天C語言(15):for迴圈-注意點C語言
- C語言-for迴圈之窮舉法練習C語言
- 迴圈佇列C++實現佇列C++
- C語言goto語句以及用goto語句構成迴圈C語言Go
- 輕鬆玩轉51微控制器C語言pdfC語言
- c語言_遞迴C語言遞迴
- 單向迴圈連結串列介面設計(C語言)C語言
- java 迴圈語句(轉)Java
- 回溯和遞迴實現迷宮問題(C語言)遞迴C語言
- 鴻蒙開發TypeScript語言:【迴圈】鴻蒙TypeScript
- c語言基礎語法二——迴圈控制條件語句(完節)C語言
- Java語言程式設計—迴圈語句Java程式設計
- 微控制器C語言程式設計實踐pdfC語言程式設計
- 發現C語言遞迴深度有限制C語言遞迴
- 一文帶你掌握C語言的迴圈結構C語言
- C語言 遞迴實現二叉排序樹的插入C語言遞迴排序
- Yuv420轉Jpeg(C語言實現)C語言
- 實驗2_C語言分支與迴圈基礎應用程式設計C語言程式設計
- 實驗2 c語言分支與迴圈基礎應用程式設計1C語言程式設計
- 實驗2 C語言分支與迴圈基礎應用程式設計-1C語言程式設計
- 實驗2C語言分支與迴圈基礎應用程式設計C語言程式設計
- 線性迴歸 go 語言實現Go
- react在jsx語法中實現for迴圈ReactJS
- 掃雷--C語言實現C語言
- C語言實現DES加密C語言加密
- c語言實現階乘C語言
- [iOS]C語言技術視訊-06-程式迴圈結構(for{})iOSC語言